使用以下过滤器可以根据当前分钟获取当前信息。
time: {$gte: new Date()}
我怎样才能将此过滤器更改为仅对当天敏感?因此,即使某些信息的时间字段只有几个小时,但仍然在当天,它也会被返回。以下是示例文档:
{
"_id" : ObjectId("570e6b2a5bc3c5211a5ad80a"),
"reason" : "past document",
"time" : ISODate("2016-04-13T13:46:50Z"),
}
{
"_id" : ObjectId("570e6b485bc3c5211a5ad80b"),
"reason" : "future document (today)",
"time" : ISODate("2016-04-13T18:52:13Z"),
}
{
"_id" : ObjectId("570bcb094fb2e11410e6f74c"),
"reason" : "fresh appointment",
"time" : ISODate("2016-04-21T17:04:08Z"),
}
然后预期返回将返回所有三个文档,因为它们都具有今天和更高的时间字段。目前我的过滤器只返回底部的两个文档,因为过滤器会查看日,小时和分钟。理想情况下,它只会看一天。
答案 0 :(得分:2)
创建一个日期对象实例,该实例将当前日期时间小时保持为00:00:00.000
(精确度为毫秒),并在查询中使用该实例:
var start = new Date();
start.setHours(0,0,0,0);
db.collection.find({ "time": { "$gte": start } });