Node.js Mongodb、Mongoose、数字和数组字段的多文档聚合

Node.js Mongodb、Mongoose、数字和数组字段的多文档聚合,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我的模式是这样的 var group=new Schema({ group_id:Number, group_name:String, country:String, member_count:Number, members:[member] }); var member=new Schema({ member_id:number, name:String, address:String, sex:String

我的模式是这样的


var group=new Schema({ 

    group_id:Number,
    group_name:String,
    country:String,
    member_count:Number,
    members:[member]

});

var member=new Schema({
    member_id:number,
    name:String,
    address:String,
    sex:String 
});

样本文件


group
[{
  _id:55ff7fca8d3f6607114dc57d
  group_id:1001,
  group_name:"tango mike",
  country:"japan",
  member_count:3
  members:[
    {
      _id:44ff7fca8d3f6607114dc21c
      member_id:2001,
      member_name:"Bob martin" ,
      address:String,
      sex:String 
    },

    {
      _id:22ff7fca8d3f6607114dc22d
      member_id:2002,
      member_name:"Marry",  
      address:String,
      sex:String
    },

    {
      _id:44ff7fca8d3f6607114dc23e
      member_id:2003,
      member_name:"Alice" ,
      address:String,
      sex:String 
    }
  ]

},

{
  _id:55ff7fca8d3f6607114dc32h
  group_id:1002,
  group_name:"Love chat",
  country:"japan",
  member_count:2
  members:[
    {
      _id:44ff7fca8d3f6607114dc21c
      member_id:2011,
      member_name:"Henry martin" ,
      address:String,
      sex:String 
    },

    {
      _id:22ff7fca8d3f6607114dc22d
      member_id:2022,
      member_name:"George",  
      address:String,
      sex:String
    }


  ]

}

]

上面是我创建的虚拟场景,与我工作的原始场景类似

我正在努力做到这一点。。。 1) 统计日本所有国家组的成员总数(通过聚合所有组的成员计数字段)
对于上述集合,成员总数应为3+2
2) 列出日本所有国家组的所有成员
对于上述集合,所有成员列表应为

 [{

           {
          _id:44ff7fca8d3f6607114dc21c
          member_id:2001,
          member_name:"Bob martin" ,
          address:String,
          sex:String 
        },

        {
          _id:22ff7fca8d3f6607114dc22d
          member_id:2002,
          member_name:"Marry",  
          address:String,
          sex:String
        },

        {
          _id:44ff7fca8d3f6607114dc23e
          member_id:2003,
          member_name:"Alice" ,
          address:String,
          sex:String 
        },

             {
          _id:44ff7fca8d3f6607114dc21c
          member_id:2011,
          member_name:"Henry martin" ,
          address:String,
          sex:String 
        },

        {
          _id:22ff7fca8d3f6607114dc22d
          member_id:2022,
          member_name:"George",  
          address:String,
          sex:String
        }


         }]
  

在mongoose中如何执行此操作。

您可以像这样使用聚合管道

聚合([{$group:{{$id:“$country”,count:{$sum:$member:$count”}),成员:{$push:$member “}}}])

谢谢,
Rohit

嗨,你想一次完成吗?这样会更好。。。如果可能的话,一次就可以