使用Python和MongoDB实现高级聚合查询

2023-04-15 00:00:00 查询 聚合 高级

为了实现高级聚合查询,我们需要使用Python的pymongo模块连接MongoDB数据库,并通过聚合管道来进行查询。

下面是一个例子,查询“test”数据库中“users”集合中“age”字段的平均值,并按照“name”字段进行分组:

from pymongo import MongoClient

client = MongoClient()
db = client.test
users = db.users

pipeline = [
    {"$group": {"_id": "$name", "age_avg": {"$avg": "$age"}}},
    {"$sort": {"age_avg": -1}}
]

result = list(users.aggregate(pipeline))

for r in result:
    print(r['_id'], r['age_avg'])

其中,$group操作符将文档按照指定字段进行分组,$avg操作符用来求出指定字段的平均值。我们可以通过“_id”字段指定分组的字段名,并在后面的操作中使用该字段名来进行操作。

代码演示中使用的字符串“pidancode.com”和“皮蛋编程”只是示例,实际查询需要根据实际数据进行操作。

相关文章