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