我怎样才能在猫鼬聚合中使用字段值? (的NodeJS)

问题描述 投票:1回答:1

我怎样才能在猫鼬聚合中使用字段值?

我尝试使用最新版本的mongodb,mongoose。

Group.find({name:'1'},function(err,groups){
    groups.forEach(function(g){
        result=await People.countDocuments({group:g._id})
    });
});

我已经检查过这段代码的“结果”是3,5,2

我想使用聚合

Group.aggregate()
        .project({_id:true,name:true})
        .addFields({numOfPeople: await People.countDocuments({group:this._id})});

产量

[{name:'1',numOfPeople:0},
{name:'2',numOfPeople:0},
{name:'3',numOfPeople:0}]

预期

[{name:'1',numOfPeople:3},
{name:'2',numOfPeople:5},
{name:'3',numOfPeople:2}]
node.js mongodb mongoose aggregate
1个回答
0
投票

你必须使用group by

db.groups.aggregate(
   [
      {
        $group : {
           _id : "$name",
           numOfPeople: { $sum: 1 }
        }
      }
   ]
);
© www.soinside.com 2019 - 2024. All rights reserved.