使用 PyMongo 与 MongoDB 进行交互,涉及连接数据库、插入文档、查询数据、更新数据和删除数据等基本操作。以下是 PyMongo 和 MongoDB 的基本用法示例:
首先,确保已安装 PyMongo:
pip install pymongo
使用 MongoClient 连接到 MongoDB 实例:
MongoClient
from pymongo import MongoClient # 建立连接 client = MongoClient('mongodb://localhost:27017') # 选择数据库和集合 db = client.my_database collection = db.my_collection
使用 insert_one 方法插入单个文档:
insert_one
document = {"name": "Alice", "age": 30, "address": "123 Main St"} collection.insert_one(document)
使用 insert_many 方法插入多个文档:
insert_many
documents = [ {"name": "Bob", "age": 25, "address": "456 Elm St"}, {"name": "Charlie", "age": 35, "address": "789 Oak St"} ] collection.insert_many(documents)
使用 find_one 方法查询单个文档:
find_one
result = collection.find_one({"name": "Alice"}) print(result)
使用 find 方法查询多个文档:
find
results = collection.find({"age": {"$gt": 20}}) for doc in results: print(doc)
使用 update_one 方法更新单个文档:
update_one
collection.update_one({"name": "Alice"}, {"$set": {"age": 31}})
使用 update_many 方法更新多个文档:
update_many
collection.update_many({"age": {"$lt": 30}}, {"$set": {"status": "young"}})
使用 delete_one 方法删除单个文档:
delete_one
collection.delete_one({"name": "Alice"})
使用 delete_many 方法删除多个文档:
delete_many
collection.delete_many({"status": "inactive"})
创建索引可以提高查询性能。使用 create_index 方法创建索引:
create_index
collection.create_index("name")
为高并发场景配置连接池参数,例如最大连接数和等待队列超时时间:
client = MongoClient( 'mongodb://localhost:27017', maxPoolSize=100, waitQueueTimeoutMS=1000 )
在执行数据库操作时,处理可能出现的异常:
from pymongo.errors import DuplicateKeyError try: collection.insert_one({"_id": 1, "name": "Test"}) except DuplicateKeyError: print("Document with the same _id already exists")
以下是一个综合示例,展示了如何连接到 MongoDB,进行插入、查询、更新和删除操作:
from pymongo import MongoClient from pymongo.errors import DuplicateKeyError # 连接到 MongoDB client = MongoClient('mongodb://localhost:27017') db = client.my_database collection = db.my_collection # 插入操作 document = {"name": "Alice", "age": 30, "address": "123 Main St"} try: collection.insert_one(document) except DuplicateKeyError: print("Document with the same _id already exists") # 批量插入 documents = [ {"name": "Bob", "age": 25, "address": "456 Elm St"}, {"name": "Charlie", "age": 35, "address": "789 Oak St"} ] collection.insert_many(documents) # 查询操作 result = collection.find_one({"name": "Alice"}) print(result) results = collection.find({"age": {"$gt": 20}}) for doc in results: print(doc) # 更新操作 collection.update_many({"age": {"$lt": 30}}, {"$set": {"status": "young"}}) # 删除操作 collection.delete_many({"status": "inactive"}) # 创建索引 collection.create_index("name")
通过这些示例和最佳实践,你可以高效地使用 PyMongo 进行 MongoDB 的基本操作。
原文链接:codingdict.net