2
我想我幾乎在那裏與我想做的事情,但我正在倒在最後的障礙。我需要從一個嵌套數組中提取多個值以及一個計數。MongoDB查詢返回一個數組中的多個值
我有很多的文件,看起來像這樣:
{
"_id" : ObjectId("547db34cd9460c25e6000002"),
"doc_number" : "500715",
"error_list" : [
{
"extractor" : "Code Check",
"message_number" : "RC9999",
"message" : "Code is not synchronised"
},
{
"extractor" : "Metadata Check",
"message_number" : "RC1043",
"message" : "No metadata for document"
},
{
"extractor" : "Property Extractor",
"message_number" : "PE1012",
"message" : "No properties found"
}
]
}
我可以查詢集合來獲得與每個錯誤代碼的計數:
db.errors.aggregate(
[
{ $unwind : "$error_list" },
{ $group :
{ _id : "$error_list.message_number",
count: { $sum : 1 }
}
}
]
);
,並返回此:
{
"result" : [
{
"_id" : "PE1012",
"count" : 12
},
{
"_id" : "RC1043",
"count" : 2
},
{
"_id" : "RC9999",
"count" : 10
}
],
"ok" : 1
}
我想添加到結果中的是消息文本。我無法解決如何做到這一點,所以任何幫助都會很棒。
我想結果看起來與此類似:
{
"result" : [
{
"_id" : "PE1012",
"count" : 12,
"message" : "No properties found"
},
{
"_id" : "RC1043",
"count" : 2,
"message" : "No metadata for document"
},
{
"_id" : "RC9999",
"count" : 10,
"message" : "Code is not synchronised"
}
],
"ok" : 1
}
對不起,我的答覆很慢。這正是我所追求的,謝謝你的出色解釋。 – spannerj 2014-12-12 10:23:49