Mongoose:按特定月份查找

nnc*_*ncl 4 mongoose mongodb

我的数据库上有这个模型:

{
    "title" : {
        type: String
    }
    , "date" : {
        type: Date
        , default: Date.now
    }
}
Run Code Online (Sandbox Code Playgroud)

文档示例是:

{
     "_id": "5aa2d0f9e10fed2054fe1138",
     "title": "Hello World",
     "date": "2018-03-09T03:00:00.000Z"
}
Run Code Online (Sandbox Code Playgroud)

我只想获取日期具有特定月份的所有文档,即:3,这意味着三月。这真的与哪一天/哪年无关。

我找到了一些聚合答案,但在所有这些答案中,我都必须创建一个包含最少年份的日期以添加到$gte,但我不想这样做。

还有其他方法吗?

MongoDB 版本:3.4.7

谢谢。

Kri*_*hna 10

希望这能解决它。我也想知道如何在比赛阶段本身使用 $month 。我会将此视为部分答案。

V3.6

db.test.aggregate([
      {$addFields: {  "month" : {$month: '$date'}}},
      {$match: { month: 3}}
    ]);
Run Code Online (Sandbox Code Playgroud)

V3.4

db.test.aggregate([
  {$project: { title:1, date:1, "month" : {$month: '$date'}}},
  {$match: { month: 3}}
]);
Run Code Online (Sandbox Code Playgroud)