使用Python和MongoDB实现数据聚合的最佳实践
- 连接MongoDB
使用Python中的pymongo库连接MongoDB数据库。需要指定数据库的主机名、端口号、数据库名称、用户名和密码。
import pymongo client = pymongo.MongoClient('mongodb://localhost:27017/') db = client['test_db'] collection = db['test_collection']
- 插入数据
使用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])
- 聚合数据
使用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}
- 字符串范例
如果需要使用字符串作为范例,请使用“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}
相关文章