【发布时间】:2018-05-31 20:49:00
【问题描述】:
我正在尝试做 PyMongo 聚合 - $group 数组的平均值,但我找不到任何符合我的问题的示例。
数据示例
{
Subject: "Dave",
Strength: [1,2,3,4]
},
{
Subject: "Dave",
Strength: [1,2,3,5]
},
{
Subject: "Dave",
Strength: [1,2,3,6]
},
{
Subject: "Stuart",
Strength: [4,5,6,7]
},
{
Subject: "Stuart",
Strength: [6,5,6,7]
},
{
Subject: "Kevin",
Strength: [1,2,3,4]
},
{
Subject: "Kevin",
Strength: [9,4,3,4]
}
想要的结果
{
Subject: "Dave",
mean_strength = [1,2,3,5]
},
{
Subject: "Stuart",
mean_strength = [5,5,6,7]
},
{
Subject: "Kevin",
mean_strength = [5,3,3,4]
}
我已经尝试过这种方法,但 MongoDB 将数组解释为 Null?
pipe = [{'$group': {'_id': 'Subject', 'mean_strength': {'$avg': '$Strength'}}}]
results = db.Walk.aggregate(pipeline=pipe)
Out: [{'_id': 'SubjectID', 'total': None}]
我浏览了 MongoDB 文档,但我找不到或不明白是否有任何方法可以做到这一点?
【问题讨论】:
-
分组时总是加
$,这里"_id":"$Subject"。
标签: python arrays mongodb aggregation-framework pymongo