我试图提出一个MongoDB(v 3.6.7。)查询,以查找符合特定条件的文档-从今天或明天开始的事件(无需手动输入今天的日期)
这是示例字段:
"StartDateTime" : "2018-11-08T00:32:00Z"
我尝试了一些应该至少返回一些事件的方法,但无法弄清楚为什么它不起作用
db.collection.find({ StartDateTime: { $gte: new Date() } })
有人可以帮助我进行此查询吗?
答案 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
}
});