我正在使用mongodb 2.2。我想使用新的聚合框架对我的文档进行查询,但元素是数组。
这是我的$ project结果的一个例子:
{
"type" : [
"ads-get-yyy",
"ads-get-zzz"
],
"count" : [
NumberLong(0),
NumberLong(10)
],
"latency" : [
0.9790918827056885,
0.9790918827056885
]
}
我希望按类型进行分组,因此对于“ads-get-yyy”,要知道计数的平均值是多少,以及延迟的平均值是多少。
我希望有类似于下一个查询的东西,但它在每个数组的元素内部起作用:
db.test.aggregate(
{
$project : {
"type" : 1,
"count" : 1,
"latency" : 1
}
},{
$group : {
_id: {type : "$type"},
count: {$avg: "$count"},
latency: {$avg: "$latency"}
}
});
答案 0 :(得分:1)
我也正在学习新的AF,但我认为您需要先$unwind
这些类型,以便您可以按他们分组。如下所示:
db.test.aggregate({
$project : {
"type" : 1,
"count" : 1,
"latency" : 1
}
},{
$unwind : "$type"
},{
$group : {
_id: {type : "$type"},
count: {$avg: "$count"},
latency: {$avg: "$latency"}
}
});