如何在MongoDB中按日期查询文档?

Eri*_*rik 0 mongoose mongodb node.js express

我的事件集合存储以下文件:

{
  "_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"
  }
}
Run Code Online (Sandbox Code Playgroud)

我如何通过特定的 startTime 查询事件,如下所示:

var startTime = '2014-05-18T20:00:00.000Z';

db.collection.find({startTime: {$eq: startTime}});
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要忽略时间并在查询中只使用日期。我怎样才能构建我的查询?

Phi*_*ipp 5

在您要查询的当天午夜和第二天的午夜定义一个日期。然后使用$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}});
Run Code Online (Sandbox Code Playgroud)