Node.js 在MongoDB中获取特定月份和特定年份的文档

Node.js 在MongoDB中获取特定月份和特定年份的文档,node.js,mongodb,express,mongodb-query,Node.js,Mongodb,Express,Mongodb Query,我正在尝试获取在特定月份和特定年份创建的所有文档。我将日期保存在“日期”字段中,因此我的查询现在如下所示: db.collection(expenses_collection).find({ $expr: { $eq: [{ $month: "$date" }, 3], $eq: [{ $year: "$date" }, 2020] } }); 但这个查询返回的是2020年创建的所有文档,并且忽略了本月的所有文档。如何解决此问题 提前谢谢你 应该使用运算符绑定两个条件,否则它将考虑查询中的

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

db.collection(expenses_collection).find({
  $expr: { $eq: [{ $month: "$date" }, 3], $eq: [{ $year: "$date" }, 2020] }
});
但这个查询返回的是2020年创建的所有文档,并且忽略了本月的所有文档。如何解决此问题

提前谢谢你

应该使用运算符绑定两个条件,否则它将考虑查询中的最后一个条件。因此,请尝试以下一种:

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