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

时间:2015-03-29 08:45:50

标签: node.js mongodb date meanjs

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

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

db.posts.find({created_on: {$gte: start, $lt: end}});

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:47)

您的开始日期对象应保持当前日期时间小时为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()endOf()方法完成此操作,并将字符串'day'作为参数:

var start = moment().startOf('day'); // set to 12:00 am today
var end = moment().endOf('day'); // set to 23:59 pm today