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嗨,你想一次完成吗?这样会更好。。。如果可能的话,一次就可以