MongoDB 聚合
MongoDB 的聚合管道可以对一组文档进行变换和汇总操作。聚合管道是一个基于数据处理管道模型的过程,在这个过程中,数据输入管道,然后经过一系列的阶段,每个阶段对数据进行一些处理,然后将处理后的数据传递给下一个阶段,最终生成输出结果。
以下是一些常见的 MongoDB 聚合操作:
- 统计数量
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client['test_database']
collection = db['test_collection']
count = collection.count_documents({})
print(count)
- 查询所有文档
pipeline = []
for doc in collection.aggregate(pipeline):
print(doc)
- 过滤文档
pipeline = [{'$match': {'status': 'A'}}]
for doc in collection.aggregate(pipeline):
print(doc)
- 文档的排序
pipeline = [{'$sort': {'amount': -1}}]
for doc in collection.aggregate(pipeline):
print(doc)
- 分组和计数
pipeline = [{'$group': {'_id': '$status', 'count': {'$sum': 1}}}]
for doc in collection.aggregate(pipeline):
print(doc)
- 分页
pipeline = [{'$skip': 10}, {'$limit': 5}]
for doc in collection.aggregate(pipeline):
print(doc)
- 展开数组
pipeline = [{'$unwind': '$items'}]
for doc in collection.aggregate(pipeline):
print(doc)
- 添加新字段
pipeline = [{'$project': {'_id': 0, 'name': 1, 'full_name': {'$concat': ['$name', ' ', '$surname']}}}]
for doc in collection.aggregate(pipeline):
print(doc)
以上代码示例均使用 Python 的 pymongo 库操作 MongoDB。在实际应用中,你需要根据自己的需求设计合适的聚合管道。
评论已关闭