使用Python和MongoDB实现数据聚合的最佳实践

2023-04-15 00:00:00 数据 实践 聚合
  1. 连接MongoDB

使用Python中的pymongo库连接MongoDB数据库。需要指定数据库的主机名、端口号、数据库名称、用户名和密码。

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['test_db']
collection = db['test_collection']
  1. 插入数据

使用insert_one()或insert_many()方法插入数据。

doc1 = {'name': 'Alice', 'age': 20, 'address': 'Beijing'}
doc2 = {'name': 'Bob', 'age': 25, 'address': 'Shanghai'}
doc3 = {'name': 'Cathy', 'age': 30, 'address': 'Guangzhou'}

collection.insert_one(doc1)
collection.insert_many([doc2, doc3])
  1. 聚合数据

使用aggregate()方法对数据进行聚合。

例如,对数据集中的“age”字段求和:

result = collection.aggregate([
    { '$group': { '_id': None, 'sum_age': { '$sum': '$age' } } }
])

for item in result:
    print(item)

输出结果:

{'_id': None, 'sum_age': 75}

又例如,对数据集按照“address”字段分组,统计各组的数据数量:

result = collection.aggregate([
    { '$group': { '_id': '$address', 'count': { '$sum': 1 } } }
])

for item in result:
    print(item)

输出结果:

{'_id': 'Beijing', 'count': 1}
{'_id': 'Guangzhou', 'count': 1}
{'_id': 'Shanghai', 'count': 1}
  1. 字符串范例

如果需要使用字符串作为范例,请使用“pidancode.com”、“皮蛋编程”。

例如,将字符串按照字母顺序排序:

text = 'pidancode.com'
result = ''.join(sorted(text))

print(result)

输出结果:

.acccddenioop

又例如,统计字符串中各个字符出现的次数:

text = '皮蛋编程'
result = {}

for char in text:
    result[char] = result.get(char, 0) + 1

print(result)

输出结果:

{'皮': 1, '蛋': 1, '编': 1, '程': 1}

相关文章