MongoDB 简介
MongoDB 是一个高性能、可伸缩、易用的 NoSQL 数据库。它由 C++ 语言编写,旨在为高吞吐量应用提供支持。MongoDB 的数据模型类似于 JSON,这使得它非常适合存储结构化数据。
环境搭建
在开始使用 MongoDB 之前,我们需要安装 MongoDB 和 Python 的 MongoDB 驱动。以下是安装步骤:
安装 MongoDB:前往 MongoDB 官网下载适合你操作系统的 MongoDB 版本,并按照说明进行安装。
安装 Python 的 MongoDB 驱动:打开终端,执行以下命令安装
pymongo:
pip install pymongo
连接 MongoDB 数据库
首先,我们需要创建一个连接对象来连接到 MongoDB 数据库。以下是一个示例代码:
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client['mydatabase']
collection = db['mycollection']
这里,我们创建了一个名为 mydatabase 的数据库和一个名为 mycollection 的集合。
基本操作
插入数据
我们可以使用 insert_one 方法插入单个文档,使用 insert_many 方法插入多个文档。以下是一个示例:
# 插入单个文档
document = {"name": "John", "age": 30}
result = collection.insert_one(document)
print(f"Inserted document id: {result.inserted_id}")
# 插入多个文档
documents = [{"name": "Alice", "age": 25}, {"name": "Bob", "age": 28}]
result = collection.insert_many(documents)
print(f"Inserted document ids: {result.inserted_ids}")
查询数据
我们可以使用 find 方法查询数据。以下是一个示例:
# 查询所有文档
for document in collection.find():
print(document)
# 查询年龄大于 30 的文档
for document in collection.find({"age": {"$gt": 30}}):
print(document)
更新数据
我们可以使用 update_one 方法更新单个文档,使用 update_many 方法更新多个文档。以下是一个示例:
# 更新单个文档
collection.update_one({"name": "John"}, {"$set": {"age": 35}})
# 更新多个文档
collection.update_many({"name": "Alice"}, {"$set": {"age": 26}})
删除数据
我们可以使用 delete_one 方法删除单个文档,使用 delete_many 方法删除多个文档。以下是一个示例:
# 删除单个文档
collection.delete_one({"name": "John"})
# 删除多个文档
collection.delete_many({"name": "Alice"})
高级操作
索引
索引可以提高查询效率。以下是一个示例:
collection.create_index([('name', 1), ('age', -1)])
这里,我们创建了一个复合索引,首先根据姓名升序排序,然后根据年龄降序排序。
聚合
MongoDB 提供了强大的聚合框架,可以用于复杂的数据处理。以下是一个示例:
pipeline = [
{"$match": {"age": {"$gt": 30}}},
{"$group": {"_id": "$name", "count": {"$sum": 1}}},
{"$sort": {"count": -1}}
]
for doc in collection.aggregate(pipeline):
print(doc)
这里,我们统计了年龄大于 30 的人的数量,并按数量降序排序。
总结
通过以上指南,我们可以轻松使用 Python 集成 MongoDB,实现高效的数据库操作。在实际应用中,我们可以根据具体需求调整操作方式和索引策略,以达到最佳性能。
