【问题标题】:Get documents from specific month and specific year in MongoDB从 MongoDB 中的特定月份和特定年份获取文档
【发布时间】:2020-03-14 19:19:05
【问题描述】:

我正在尝试获取在特定月份和特定年份创建的所有文档。我将日期保存在“日期”字段中,因此我的查询现在如下所示:

db.collection(expenses_collection).find({
  $expr: { $eq: [{ $month: "$date" }, 3], $eq: [{ $year: "$date" }, 2020] }
});

但是这个查询返回给我的所有文档都是在 2020 年创建的并且忽略了月份。我该如何解决这个问题?

提前谢谢你!

【问题讨论】:

    标签: node.js mongodb express mongodb-query


    【解决方案1】:

    您应该使用$and 运算符来绑定两个条件,否则它将考虑查询中的最后一个条件。所以试试下面的一个:

    db.collection.find({
      $expr: {
        $and: [
          {
            "$eq": [
              {
                "$month": "$date"
              },
              3
            ]
          },
          {
            "$eq": [
              {
                "$year": "$date"
              },
              2020
            ]
          }
        ]
      }
    })
    

    测试: MongoDB-Playground

    【讨论】:

      猜你喜欢
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 2021-12-02
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多