MongoDB查询今天和明天的事件

时间:2018-11-09 15:23:28

标签: mongodb

我试图提出一个MongoDB(v 3.6.7。)查询,以查找符合特定条件的文档-从今天或明天开始的事件(无需手动输入今天的日期)

这是示例字段:

"StartDateTime" : "2018-11-08T00:32:00Z"

我尝试了一些应该至少返回一些事件的方法,但无法弄清楚为什么它不起作用

db.collection.find({ StartDateTime: { $gte: new Date() } })

有人可以帮助我进行此查询吗?

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题。这是我使用的查询运算符的链接:

https://docs.mongodb.com/manual/reference/operator/query/

// Get date strings
const startTime = new Date(Date.now());
const startTimeString = startTime.getFullYear() + '-' + ((startTime.getMonth() < 10 ? '0' : '') + startTime.getMonth()) + '-' + ((startTime.getDate() < 10 ? '0' : '') + startTime.getDate()) + 'T' + '00:00:00.000Z';

const startTimeTomorrow = new Date(Date.now());
startTimeTomorrow.setDate(startTimeTomorrow.getDate() + 1);
const startTimeTomorrowString = startTimeTomorrow.getFullYear() + '-' + ((startTimeTomorrow.getMonth() < 10 ? '0' : '') + startTimeTomorrow.getMonth()) + '-' + ((startTimeTomorrow.getDate() < 10 ? '0' : '') + startTimeTomorrow.getDate()) + 'T' + '23:59:59.999Z';

// MongoDB Find Query (returns cursor)
db.collection.find({ 
    'StartDateTime': { 
        '$gte': startTimeString,
        '$lte': startTimeTomorrowString
    } 
});