更改MongoDB中日期过滤器的灵敏度

时间:2016-04-13 15:41:53

标签: javascript mongodb mongoose

使用以下过滤器可以根据当前分钟获取当前信息。

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"),
}

然后预期返回将返回所有三个文档,因为它们都具有今天和更高的时间字段。目前我的过滤器只返回底部的两个文档,因为过滤器会查看日,小时和分钟。理想情况下,它只会看一天。

1 个答案:

答案 0 :(得分:2)

创建一个日期对象实例,该实例将当前日期时间小时保持为00:00:00.000(精确度为毫秒),并在查询中使用该实例:

var start = new Date();
start.setHours(0,0,0,0);

db.collection.find({ "time": { "$gte": start } });