将日期与mongodb中的月份或年份进行比较

时间:2017-02-20 11:35:25

标签: mongodb mongoose mongodb-query

有没有办法将MongoDb集合中的日期与一个月或一年进行比较。例如: -

收藏中的

文件: -

{
"pageName": "xyz",
"createdAt": "ISODate("2017-02-19T18:30:00Z")"
},
{
"pageName": "abc",
"createdAt": "ISODate("2017-03-19T18:30:00Z")"
},
{
"pageName": "pqr",
"createdAt": "ISODate("2018-02-19T18:30:00Z")"
},
{
"pageName": "dfg",
 "createdAt": "ISODate("2017-03-19T18:30:00Z")"
}

我期待的是: - 如果我只通过一个月说02和年说2017年它将返回: -

{
  "pageName": "xyz",
  "createdAt": "ISODate("2017-02-19T18:30:00Z")"
}

帮我写一下这个场景的MongoDb查询。

1 个答案:

答案 0 :(得分:1)

以下查询适用于您的情况。

db.getCollection('collection_name').aggregate(
   [
     {
       $project:
         {
           pageName: "$pageName",
           createdAt: "$createdAt",
           year: { $year: "$createdAt" },
           month: { $month: "$createdAt" }
         }
     },
     { $match : { "month" : 2, "year": 2017 } }
   ]
)