Mongodb 如何获取周期时间超过某个分钟的所有文档

Mongodb 如何获取周期时间超过某个分钟的所有文档,mongodb,Mongodb,假设我们有3个文档。第一个在6:00创建,第二个在6:25创建,第三个在7:00创建。我如何编写查询以在5:45之后获取所有文档,并且它们之间的时间间隔小于30分钟?在当前示例中,我希望得到第一个和第二个,因为第三个距离最后一个有30多分钟 以数字格式保存期间 collection.find({period:{$gt:5:45,$lt:30}})你不太可能得到这样一个问题的答案。检查如何提出一个好的问题我发布了一个答案,请告诉它是否有用(或任何关于它的问题)。谢谢你的回答,但这给了我一个时间到时

假设我们有3个文档。第一个在6:00创建,第二个在6:25创建,第三个在7:00创建。我如何编写查询以在5:45之后获取所有文档,并且它们之间的时间间隔小于30分钟?在当前示例中,我希望得到第一个和第二个,因为第三个距离最后一个有30多分钟

以数字格式保存期间


collection.find({period:{$gt:5:45,$lt:30}})

你不太可能得到这样一个问题的答案。检查如何提出一个好的问题我发布了一个答案,请告诉它是否有用(或任何关于它的问题)。谢谢你的回答,但这给了我一个时间到时间的范围,但我需要的是得到一个基于时间的文件系列,直到最后2个文件的时间超过30分钟
var arr = db.times.find( { time: { $gte: ISODate("2019-12-30T04:00:00.000+00:00") } } ).sort( { time: 1 } ).toArray();

const THIRTY_MINS = 30 * 60 * 1000;
var prevTime = arr[0].time;
var set = new Set();

for ( let i = 1; i < arr.length; i++ ) {

    if ( ( arr[i].time - prevTime ) <= THIRTY_MINS ) {
        set.add( arr[i - 1] );
        set.add( arr[i] );
    }

    prevTime = arr[i].time;
}

var resultArr = [...set];
{ time: ISODate("2019-12-30T06:00:00.000+00:00") },
{ time: ISODate("2019-12-30T06:25:00.000+00:00") },
{ time: ISODate("2019-12-30T07:00:00.000+00:00") }