【发布时间】:2015-06-03 15:10:44
【问题描述】:
我有这两个 MongoDB 文档。我想找到皇马和巴塞罗那体育场的容量,假设皇马有两个体育场(对不起梅伦格斯 :)
{
"_id" : "Bar.43",
"official_name" : "Futbol Club Barcelona
"country" : "Spain",
"started_by" : {
"day" : 28,
"month" : 11,
"year" : 1899
},
"stadium" : {
"name" : "Camp Nou",
"capacity" : 99354
},
"palmarès" : {
"La Liga" : 23,
"Copa del Rey" : 27,
"Supercopa de Espana" : 11,
"UEFA Champions League" : 4,
"UEFA Cup Winners Cup" : 4,
"UEFA Super Cup" : 4,
"FIFA Club World cup" : 2
},
"uniform" : "blue and dark red"
},
{
"_id" : "RMa.103",
"official_name" : "Real Madrid Club de Fùtbol
"country" : "Spain",
"started_by" : {
"day" : 6,
"month" : 3,
"year" : 1902
},
"stadium" : [{
"name" : "Santiago Bernabeu",
"capacity" : 85454
},
{
"name" : "Vicente Calderon"
"capacity" : 54907
}],
"palmarès" : {
"La Liga" : 32,
"Copa del Rey" : 19,
"Supercopa de Espana" : 9,
"UEFA Champions League" : 10,
"UEFA Europa League" : 2,
"UEFA Super Cup" : 2,
"FIFA Club World cup" : 4
},
"uniform" : "white"
}
好吧,我的查询是:
db.team.aggregate([{$group:{_id:"$country", capacityStadium:{$sum:"$stadium.capacity"}}}])
但它不起作用。相反,如果皇家马德里只有一个体育场,我的查询有效。所以,一般来说,当我有一个嵌入文档数组并且我想使用聚合时,我必须使用 $unwind 来划分该数组的文档吗? 问题是巴塞罗那的球场不是文档数组,查询出错。
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework