📜  使用Python在 MongoDB 中进行聚合

📅  最后修改于: 2022-05-13 01:54:33.766000             🧑  作者: Mango

使用Python在 MongoDB 中进行聚合

MongoDB是免费的、开源的、跨平台的、面向文档的数据库管理系统 (dbms)。它是一种 NoSQL 类型的数据库。它将数据以BSON格式存储在硬盘上。 BSON 是二进制形式,用于表示 MongoDB 中的简单数据结构、关联数组和各种数据类型。 NoSQL 是最近使用的数据库,它提供了存储和检索数据的机制。 mongodb 架构不是在关系数据库中使用表和行,而是由集合和文档组成。

MongoDB 中的聚合

聚合操作将来自多个文档(在 MongoDB 中为行)中的值组合在一起,以对分组数据执行各种操作,并在聚合后为每个分组数据返回单个结果。

句法:

db.collection_name.aggregate(aggregate operations)

以下所有示例中使用的示例数据库:

示例 1:

Python3
from pymongo import MongoClient
  
my_client = MongoClient('localhost', 27017)
db = my_client["GFG"]
coll = db["Student"]
  
# Aggregation
cursor = coll.aggregate([{"$group":
       {"_id":"$Branch",
       "similar_branches":{"$sum":1}
       }
       }])
  
for document in cursor:
       print(document)


Python3
from pymongo import MongoClient
  
my_client = MongoClient('localhost', 27017)
db = my_client["GFG"]
coll = db["Student"]
  
# Aggregation
cursor = coll.aggregate([{"$group":
       {"_id":"$None",
       "total collections":{"$sum": 1}
       }
       }])
  
for document in cursor:
       print(document)


输出:

在这里,我们使用“$group”命令进行分组,然后通过“_id”:“branches”我们根据分支对 id 进行分组。 “similar_branches”是用于相似分支总数的关键字,我们可以在这里使用任何关键字。 “$sum:1”用作每个分支总数的计数器。总和递增 1。

示例 2:我们还可以使用聚合查询来统计数据库中的文档数。

Python3

from pymongo import MongoClient
  
my_client = MongoClient('localhost', 27017)
db = my_client["GFG"]
coll = db["Student"]
  
# Aggregation
cursor = coll.aggregate([{"$group":
       {"_id":"$None",
       "total collections":{"$sum": 1}
       }
       }])
  
for document in cursor:
       print(document)

输出:

{'_id': None, 'total collections': 8}