如何在mongodb中使用python (pymongo)计算跨文档的字段值之和



我在MongoDB中存储了以下结构的一些文档:

DOCUMENT 1
{
"_id":{
"$oid":"634c4eb3421aa4567782ffc7af"
},
"name":"John Doe",
"wins":{
"texas":{
"football":{
"count":1,
},
"basketball":{
"open_count":1,
}
}
}
}
DOCUMENT 2
{
"_id":{
"$oid":"634c4eb3421aa4567782ffc7af"
},
"name":"Johnny Doey",
"wins":{
"texas":{
"football":{
"count":3,
},
"basketball":{
"open_count":4,
}
}
}
}

在这里,我试图通过游戏类型获得学生的胜利。示例:结果应该能够告诉我在足球比赛中的总胜利(包括两个学生)。有了以上的文件,总数(1+3 = 4,即约翰·多伊1胜+约翰尼·多伊1胜)

在这种情况下,我无法得到正确的pymongo聚合查询。征求关于如何实现这一目标的意见。

我已经尝试过group by,但这适用于值而不是文档的键(足球是在这种情况下计算所有学生在足球中的胜利的关键)。

好了,我知道答案了。我尝试使用$group的方向是正确的,但是我如何编写查询存在一些问题。

用于计算足球比赛的总胜率。

collection.aggregate([{ 
'$group': { 
'_id':None, 
'total': { '$sum': '$wins.texas.football.count' }
}
}])

最新更新