我的数据库上有这个模型:
{
"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)