首页 > 解决方案 > Python中的MongoDB:从聚合查询的结果中获取特定值

问题描述

我正在尝试在 python 中使用 MongoDB 查找数据库中帖子的平均分数,并且我已经正确完成了查询,但我希望将平均值的数值从结果中分离出来以用于其他计算,但我不确定如何做到这一点我得到的结果是这样的:

{'_id': {'OwnerId': '24', 'PostType': '1'}, 'Score': 1.3333333333333333}

我只想要 Score 中的 1.3333。

我的查询代码是:

group = {"$group":{"_id":{"OwnerId":"$OwnerUserId", "PostType":"$PostTypeId"}, "Score":{"$avg":"$Score"}}}
match = {"$match":{"OwnerUserId":uid}}
questionsScoreAverage = db.Posts.aggregate([match, group])

我似乎无法找到一种方法来做到这一点,并非常感谢任何建议。

标签: pythonmongodbpymongo

解决方案


两种选择;$project要么向聚合查询添加一个阶段,要么简单地选择Score返回值的字典元素,例如

for item in questionsScoreAverage :
    item.get('Score')

推荐阅读