Mongodb 猫鼬:按特定月份查找
我的数据库中有此模型:Mongodb 猫鼬:按特定月份查找,mongodb,mongoose,Mongodb,Mongoose,我的数据库中有此模型: { "title" : { type: String } , "date" : { type: Date , default: Date.now } } 文档示例为: { "_id": "5aa2d0f9e10fed2054fe1138", "title": "Hello World", "date": "2018-03-09T03:00:00.000Z" }
{
"title" : {
type: String
}
, "date" : {
type: Date
, default: Date.now
}
}
文档示例为:
{
"_id": "5aa2d0f9e10fed2054fe1138",
"title": "Hello World",
"date": "2018-03-09T03:00:00.000Z"
}
我只想获取所有日期为特定月份的文档,即:3,表示三月。不管是哪一天/哪一年
我找到了一些聚合答案,但在所有这些答案中,我都必须创建一个日期,其中至少有一年可以添加到$gte,但我不想这样做
还有别的办法吗
MongoDB版本:3.4.7
谢谢。您的聚合应该如下所示: 假设您将月份传递给查询
connection.model("myModel").aggregate([
{
$facet: {
monthly: [
{
$project: {
month: { $month: "$date" }
}
},
{ $match: { month } },
],
}
}
])
您应该会收到根据结果筛选的元素数组
查看文档
聚合框架非常好,您应该检查一下,希望这能解决问题。我还想知道如何在比赛阶段使用$month。我认为这是一个部分的答案。 V3.6 V3.4
您使用的是哪个版本的mongodb?您的日期是数据类型date?是吗?发布一些示例数据集聚合操作仅适用于mongoDB的新版本,了解version@Ricardo谢谢你回答我。我已经用3.4.7版本更新了描述,@Krishna感谢回答我。我已经用版本3.4.7更新了描述,日期的数据类型是date.Perfect。我在想我怎么能用猫鼬来编页码。我搜索了一些插件,但没有一个能同时完成这两个任务。今天我在用。你知道我怎么做吗?我是个.NET的人(@Krishna你能帮我吗谢谢你@Ricardo,我在想我怎么能用mongoose给它编页码。我搜索了一些插件,但没有一个能做到这两个。今天我正在使用。你知道我怎么做吗?
db.test.aggregate([
{$addFields: { "month" : {$month: '$date'}}},
{$match: { month: 3}}
]);
db.test.aggregate([
{$project: { title:1, date:1, "month" : {$month: '$date'}}},
{$match: { month: 3}}
]);