MongoDB找到一个给定的字段并获得平均值

时间:2016-05-18 13:17:14

标签: mongodb meteor

我想获得给定属性值的集合中的平均值。我究竟做错了什么?

else

1 个答案:

答案 0 :(得分:1)

您需要使用 $match 运算符过滤文档,即在 $group 运算符之前创建一个管道,该运算符将过滤所有文档基于给定城市价值的集合。

在前面的 $group 运算符管道中,您可以使用空键(由_id字段表示)对上一个管道中的所有文档进行分组,获得累计平均值:

db.x.aggregate([
    { "$match": { "city": "Barcelona" } },
    { "$group": { "_id": null, "$avg": "$trips" } }
]);

另一种方法(不像上面那样最优)是通过城市密钥对集合中的所有文档进行分组,然后过滤:

db.x.aggregate([
    { "$group": { "_id": "$city", "$avg": "$trips" } },
    { "$match": { "_id": "Barcelona" } }
]);