【发布时间】:2019-11-20 23:13:50
【问题描述】:
我无法使用聚合来获取 2 个变量。 在我的收藏中,我想通过 createdAt 过滤掉某些文档 并将每个匹配的文档推送到数组变量中。
在那之后,我还想要第二个变量,它显示匹配的文档数量。
我设法在它们自己的聚合中将两者分开,但不知何故我无法将它们组合在一起以在 1 个聚合中工作
对象数组的那个:
const data = await MyList.aggregate([
{
$match: {
createdAt: { $lt: new Date(myDate) }
}
},
{ $limit: 10 },
{ $skip: 20 }
]);
计数的那个:
const data = await MyList.aggregate([
{
$match: {
createdAt: { $lt: new Date(myDate) }
}
},
{
$group: {
_id: null,
count: { $sum: 1 }
}
},
{ $limit: 10 },
{ $skip: 20 }
]);
所以我希望 data 变量中的内容是这样的:
{
items: [ {...}, {...}, ...],
count: 24
}
【问题讨论】:
标签: node.js mongoose aggregation-framework