使用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}