在MongoDB中对嵌套文档的聚合查询
对于MongoDB中的聚合,请使用aggregate()。让我们创建一个包含文档的集合-
> db.demo199.insertOne(
... {
... "details1":{
... "details2":{
... "details3":{
... "Name":"Chris",
... "details4":{
... "details5":{
... "v1":10,
... "v2":20,
... "v3":30
... }
... }
... }}}}
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3c24aa03d395bdc21346e2")
}
>
> db.demo199.insertOne(
... {
... "details1":{
... "details2":{
... "details3":{
... "Name":"Chris",
... "details4":{
... "details5":{
... "v1":30,
... "v2":40,
... "v3":50
... }
... }
... }}}}
...);
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3c24ab03d395bdc21346e3")
}在find()方法的帮助下显示集合中的所有文档-
> db.demo199.find();
这将产生以下输出-
{ "_id" : ObjectId("5e3c24aa03d395bdc21346e2"), "details1" : { "details2" : { "details3" : { "Name" : "Chris", "details4" : { "details5" : { "v1" : 10, "v2" : 20, "v3" : 30 } } } } } }
{ "_id" : ObjectId("5e3c24ab03d395bdc21346e3"), "details1" : { "details2" : { "details3" : { "Name" : "Chris", "details4" : { "details5" : { "v1" : 30, "v2" : 40, "v3" : 50 } } } } } }以下是在MongoDB中对嵌套文档的聚合查询-
> var out = [
... {
... "$unwind": "$details1.details2"
... },
... {
... "$group": {
... "_id": "$details1.details2._id",
... "v1": { "$sum": "$details1.details2.details3.details4.details5.v1" },
... "v2": { "$sum": "$details1.details2.details3.details4.details5.v2" },
... "v3": { "$sum": "$details1.details2.details3.details4.details5.v3" },
... }
... }
...]
> result = db.demo199.aggregate(out);这将产生以下输出-
{ "_id" : null, "v1" : 40, "v2" : 60, "v3" : 80 }热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短