我有此查询以获取月结果。但是我想得到今天的结果。
var start = new Date(2010, 11, 1); var end = new Date(2010, 11, 30); db.posts.find({created_on: {$gte: start, $lt: end}});
做这个的最好方式是什么?
您的开始日期对象应将当前日期时间00:00:00.000设置为(毫秒精度),并将今天的时间设置为23:59:59.999:
00:00:00.000
23:59:59.999
var start = new Date(); start.setHours(0,0,0,0); var end = new Date(); end.setHours(23,59,59,999);
然后像往常一样在您的MongoDB查询运算符中传递修改后的日期对象:
db.posts.find({created_on: {$gte: start, $lt: end}});
如果您正在使用 momentjs 库,则可以通过在当前当前日期对象上使用 startOf() and endOf() 方法,并将字符串'day'作为参数传递来实现:
startOf()
endOf()
'day'
var start = moment().startOf('day'); // set to 12:00 am today var end = moment().endOf('day'); // set to 23:59 pm today