在mongodb中搜索日期

时间:2018-10-13 05:51:52

标签: mongodb mongoose mongodb-query mongoose-schema

在mongodb集合中,我有一个名为event_startdate的字段,格式如下 event_startdate:2018-10-14 16:00:00.000(type:date)

我要在此字段中存储日期和时间,并希望查询今天发生的事件并使用下面给出的查询

var date = moment()。format('YYYY-MM-D') Event.find({event_startdate:date})。exec()

由于时间也附加到event_startdate,所以我无法获取今天的详细信息。 有办法找到这个吗?

2 个答案:

答案 0 :(得分:0)

var date= moment().format('YYYY-MM-D')将给您一个字符串,然后您尝试将其与mongo中的ISO日期进行比较。

尝试以下方法:

db.getCollection('COLNAME').aggregate([
  {
    "$match": {
      "$expr": {
        $eq: [
          "2018-10-10",    // <--- You string date goes here
          {
            "$dateToString": {
              "date": "$date",
              "format": "%Y-%m-%d"
            }
          }
        ]
      }
    }
  }
])

这是将$expr管道运算符与dateToString一起使用。

答案 1 :(得分:0)

您也可以使用find

db.getCollection('loginDetail').find({
      "$expr": {
        $eq: 
      [ "2018-09-21", { "$dateToString": { "date": "$eventDate", "format": "%Y-%m-%d"
            }
          }
        ]
      }
    })