从 MongoDB 中的 Python 列表中计算值
Posted
技术标签:
【中文标题】从 MongoDB 中的 Python 列表中计算值【英文标题】:Count value from a Python list in MongoDB 【发布时间】:2021-12-29 06:30:21 【问题描述】:我有一个 Python 列表 my_list
,其中包含各种值:
["a", "b", "c"]
我想用 PyMongo 查询一个 MongoDB:
计算列表中每个项目的文档数 统计文档总数我可以一步一步做,循环如下:
for item in my_list:
db.collection.find("item" : item).count_documents()
但是,我想知道一种更好的方法,特别是避免循环。
【问题讨论】:
【参考方案1】:你可以用聚合来做到这一点
试试here
[
"$match":
"item":
"$in": [
"a",
"b",
"c"
]
,
"$group":
"_id": "$item",
"count":
"$sum": 1
]
$match
过滤文档,其中item
在 `["a", "b", "c"]``
然后$group
正在计算每个项目的文档。
SQL 等价物是:
SELECT item, SUM(1) FROM collection GROUP BY item
【讨论】:
以上是关于从 MongoDB 中的 Python 列表中计算值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用python脚本从mongoDB中检索数组中的子文档
如何使用python脚本从mongoDB中检索数组中的子文档
如何使用 mongodb 和 mongoose 从帖子模型中计算整体帖子活动(喜欢、不喜欢、评论)和用户模型中的参考总和