我的活动colleciton存储以下文件:
{
"_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}});
我的问题是我需要忽略时间并在查询中仅使用日期。我怎样才能构建我的查询?
答案 0 :(得分:3)
在您要查询的日期的午夜和第二天的午夜定义日期。然后使用$lt(小于)和$gt(大于)运算符来获取这两个时间点之间的所有结果。
var from = new Date('2014-05-18T20:00:00.000Z');
var to = new Date('2014-05-19T20:00:00.000Z');
db.collection.find({startTime: {$gt: from, $lt:to}});
答案 1 :(得分:0)
你需要创建这应该有用的Date对象
var start = new Date(2010, 3, 1);
var end = new Date(2010, 4, 1);