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,这很有帮助。