python - 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])
我似乎无法找到一种方法来做到这一点,并非常感谢任何建议。
解决方案
两种选择;$project
要么向聚合查询添加一个阶段,要么简单地选择Score
返回值的字典元素,例如
for item in questionsScoreAverage :
item.get('Score')
推荐阅读
- python-3.x - IndexError: list index out of range: When try to display digits into English words
- javascript - 我怎么知道我在哪个组件中
- audiokit - 如何在使用振荡器时消除滑行效应?
- java - javax.net.ssl.SSLPeerUnverifiedException:将 Spring Boot 从 2.1.0 升级到 2.2.0.M3 后未通过身份验证
- html - 引导表单:自定义文件按钮工作但不显示上传文件的名称
- java - 在容器化 web 应用程序时,它卡在复制 war 文件
- java - Akka FSM:如何编写测试用例来验证状态变化?
- vbscript - vbscript 减号运算符标记为无效字符
- julia - 在 Julia 中复制 Excel 的日期表示
- wordpress - 如何确定当前用户是否是 wordpress gutenberg UI 中的管理员