【问题标题】:Searching date in mongodb在 mongodb 中搜索日期
【发布时间】:2019-03-18 07:13:03
【问题描述】:

在 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 我无法获取今天的详细信息。 有没有办法找到这个?

【问题讨论】:

    标签: mongodb mongoose mongodb-query mongoose-schema


    【解决方案1】:

    您也可以使用find

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

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

        猜你喜欢
        • 2015-10-06
        • 2019-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多