Mongodb今天按日期查找创建的结果

Rex*_*van 21 date mongodb node.js meanjs

我有这个查询来获得月份的结果.但我想得到今天的结果.

var start = new Date(2010, 11, 1);
var end = new Date(2010, 11, 30);

db.posts.find({created_on: {$gte: start, $lt: end}});
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

chr*_*dam 53

您的开始日期对象应保持当前日期时间小时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);
Run Code Online (Sandbox Code Playgroud)

然后像往常一样在MongoDB查询运算符中传递修改后的日期对象:

db.posts.find({created_on: {$gte: start, $lt: end}});
Run Code Online (Sandbox Code Playgroud)

如果您正在使用momentjs库,可以使用当前日期对象上的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
Run Code Online (Sandbox Code Playgroud)