我的事件集合存储以下文档:
{
"_id": {
"$oid": "537b2a232a47f21830ae5b7b"
},
"startTime": {
"$date": "2014-05-18T21:00:00.000Z"
},
"endTime": {
"$date": "2014-05-18T23:00:00.000Z"
}
},
{
"_id": {
"$oid": "537af8136c4162d0379e2139"
},
"startTime": {
"$date": "2014-05-19T20:30:00.000Z"
},
"endTime": {
"$date": "2014-05-19T21:30:00.000Z"
}
}
字符串
如何通过特定的startTime查询事件,如下所示:
var startTime = '2014-05-18T20:00:00.000Z';
db.collection.find({startTime: {$eq: startTime}});
型
我的问题是我需要在查询中忽略时间而只使用日期。如何构造查询?
3条答案
按热度按时间0ve6wy6x1#
定义一个日期,该日期为要查询的当天的午夜和第二天的午夜。然后使用$lt(小于)和$gt(大于)运算符获取这两个时间点之间的时间跨度内的所有结果。
字符串
lvmkulzt2#
您需要创建Date对象,这应该会有所帮助
字符串
http://cookbook.mongodb.org/patterns/date_range/
jbose2ul3#
可以在日期倒置的字段中存储数字。因此,对于2023-06-08这样的日期,您应该存储数字2023 -06- 08。这样,您可以使用以下查询进行搜索:
字符串
这种方法比使用日期容易得多,并且提高了数据库的性能。