从 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 从Python中的列表计算中值。 #蟒蛇

MongoDB中的索引列表?

如何使用python脚本从mongoDB中检索数组中的子文档

如何使用python脚本从mongoDB中检索数组中的子文档

如何使用 mongodb 和 mongoose 从帖子模型中计算整体帖子活动(喜欢、不喜欢、评论)和用户模型中的参考总和

mongodb 从 5400 个文档中计算坐标距离