1
這是我的問題。我在網站上查了很多其他的MongoDB問題,但沒有一個符合我的情況。MongoDB - 聚合組合和2個層次的aub-array和subdocument
我有一個MongoDB的嵌入文檔結構,看起來像這樣: -
{
company : "ABC",
year : 2010,
Project : [{
Domain : "Telecom",
Client: [{"Name": "Ponderfone","size":25},{"Name": "Skytel","size":35},{"Name": "ChinaTel","size":10}]
}, {
Domain : "Retail",
Client: [{"Name": "Gatemart","size":95},{"Name": "Clearway","size":40}]
}, {
Domain : "Finance",
Client: [{"Name": "MFCI","size":20},{"Name": "FCCI","size":20},{"Name": "MobiBank","size":35}]
}
]
}
{
company : "ABC",
year : 2011,
Project : [{
Domain : "Telecom",
Client: [{"Name": "Ponderfone","size":50},{"Name": "Skytel","size":30},{"Name": "ChinaWay","size":30}]
}, {
Domain : "Retail",
Client: [{"Name": "Gatemart","size":120},{"Name": "Shadowfax","size":15}]
}, {
Domain : "Finance",
Client: [{"Name": "Reuben Analysts","size":15},{"Name": "FCCI","size":10},{"Name": "MobiBank","size":35}]
}
]
}
這裏的問題是,我想最裏面的文件,這是嵌入到2級的聚集列: - 「Project.Client.Size」
我試圖總結此列特定域(如果你看到的JSON)
db.projects.aggregate(
{ $match: {"year" : 2010,"company" :"ABC"}},
{ $unwind: "$Project" },
{ $match: { $or: [{"Project.Domain" : /Telecom/},{"Project.Domain" :/Retail/}]}},
{ $group: { "_id": {company: "$company", year: "$year", domain: "$Project.Domain"},
headcount: { "$sum":" $Project.Client.size" }}
})
親與此代碼blem是它返回與標記爲0人頭結果
{ "_id" : { "company" : "ABC", "year" : 2010, "domain" : "Retail" }, "headcount"
: 0 }
{ "_id" : { "company" : "ABC", "year" : 2010, "domain" : "Telecom" }, "headcount
" : 0 }
總人數應爲(25 + 35 + 10),用於電信,2010年和公司ABC 總人數應爲70(95 +40)135零售,2010年和公司ABC
有什麼我在這裏失蹤?
完美..由於一噸..我會採取億萬推測這一個! – Mario