mongodb 是否支持分组查询
时间: 2023-07-25 15:10:41 浏览: 115
springboot+mongodb 实现按日期分组分页查询功能
是的,MongoDB支持分组查询。MongoDB的分组查询使用聚合管道(Aggregate Pipeline)来实现,可以根据指定的字段对文档进行分组,并对每个分组进行汇总计算。聚合管道是由一系列操作组成的管道,每个操作都会对输入文档进行处理,并将输出传递给下一个操作。以下是一个使用聚合管道实现分组查询的例子:
假设我们有一个存储学生信息的集合,每个文档包含学生姓名(name)、所在班级(class)和成绩(score)三个字段。现在我们想要计算每个班级的平均成绩,可以使用以下代码实现:
```
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["students"]
# 使用聚合管道进行分组查询
pipeline = [
{"$group": {"_id": "$class", "avg_score": {"$avg": "$score"}}}
]
result = collection.aggregate(pipeline)
# 输出每个班级的平均成绩
for doc in result:
print(doc)
```
在这个例子中,我们使用$group操作将所有文档按照class字段进行分组,并计算每个分组的平均成绩。最终的结果是一个包含每个班级平均成绩的文档列表。
阅读全文