gpt4 book ai didi

javascript - Mongoose 组结果(按年份和月份)

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:33 24 4
gpt4 key购买 nike

对于以下架构(伪代码)。

var Post = {
title: "",
content: "",
date: new Date()
}

我想返回按月和年分组的结果,所以类似这样,再次伪代码:

 [
{ year: "2016",
month: "4",
results: [
{_id: "1232", title: "foo", content: "bar", date: "Some date" },
{_id: "1232", title: "foosdas", content: "barsdasda", date: "Some other date" } ] }
]

今天早上我一直在尝试使用 Mongoose 进行聚合,并且可以按月份和年份进行分组,但它不会返回实际的模型对象。

这是我当前的聚合查询

               Post
.aggregate({
$group: {
_id : { year: { $year : "$date" }, month: { $month : "$date" }},
}
})
.exec(function (error, items) {
if (error) { return next(error); }

console.log(items);
res.append("x-count", count);
return res.json("Done");
});

最佳答案

使用accumulator $group 中的运算符来定义 _id 之外的字段。

在这种情况下,您将使用 $pushROOT用于累积每个月的文档数组的系统变量:

Post.aggregate([{
$group: {
_id : { year: { $year : "$date" }, month: { $month : "$date" }},
results: {$push: '$$ROOT'}
}
}).exec(...

关于javascript - Mongoose 组结果(按年份和月份),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36546912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com