node.js - 获取 MongoDB 中特定月份和特定年份的文档

标签 node.js mongodb express mongodb-query

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

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

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

提前谢谢您!

最佳答案

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

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

测试: MongoDB-Playground

关于node.js - 获取 MongoDB 中特定月份和特定年份的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60686472/

相关文章:

MongoDB:查找数组中元素具有空值的记录

node.js - 为什么当我使用 sequelize 生成模型时,它的结构与包含类而不是 const 的其他模型的结构不同?

php - 如何像在 php 中一样将 URL 变量传递给 express.js?

javascript - CSS 未应用于 Pug 条件元素

javascript - Webpack:./~/sqlite3/~/node-pre-gyp/lib/node-pre-gyp.js 中的错误未找到模块:错误:无法解析 'file' 或 'directory' ../package

node.js - Mongodb 服务器套接字在 replSet 上关闭

javascript - npm init给出错误:找不到模块'process-nextick-args'

mongodb - 通过浏览他/她的所有帖子获得该用户收到的喜欢总数 MongoDB

javascript - IdleProvider.windowInterrupt 不是函数

node.js - 将文档保存到 Mongoose 中的特定集合