Mongodb 如何使用mongoose aggregate获取嵌套在另一个数组中的数组大小
我收藏了一些文件Mongodb 如何使用mongoose aggregate获取嵌套在另一个数组中的数组大小,mongodb,mongoose,aggregation-framework,Mongodb,Mongoose,Aggregation Framework,我收藏了一些文件 { _id: "8sd7f8s7df8s7df8" projects: [ { name: inbox, tasks: [ { name: 'task1' } { name: 'task2' } { name: 'task3' } ] } ] } 我想通过\u id查找文档,并获取每个项目中任务的数量 我写了这个aggregate代码,但它得到的是所有项目的任务数,
{
_id: "8sd7f8s7df8s7df8"
projects: [
{
name: inbox,
tasks: [
{ name: 'task1' }
{ name: 'task2' }
{ name: 'task3' }
]
}
]
}
我想通过\u id
查找文档,并获取每个项目中任务的数量
我写了这个aggregate
代码,但它得到的是所有项目的任务数
,而不是每个任务的大小
数组
User.aggregate([
{ $match: { _id: Mongoose.Types.ObjectId(userId)}},
{ $project: {
_id: 0,
'projects.name': 1,
'projects.count': { $size: '$projects.tasks' }
}}
])
我应该如何更改它以获得正确的值 尝试在管道之前先执行:
User.aggregate([
{ "$match": { "_id": userId } },
{ "$unwind": "$projects" },
{
"$project": {
"_id": 0,
"projects.name": 1,
"projects.count": { "$size": "$projects.tasks" }
}
}
]).exec(callback);
谢谢@chridam,这很有帮助。