Python连接MongoDB数据库并实现基本数据操作
本文详细介绍如何使用Python通过pymongo库连接MongoDB数据库,并覆盖建立连接、文档插入、条件查询、字段更新及批量删除的完整操作流程。文中提供带参数说明的代码示例与步骤化指南,帮助开发者快速掌握NoSQL数据库的基础交互与数据管理能力。
目标与准备条件
本文旨在通过官方驱动 pymongo 建立 Python 环境与 MongoDB 实例的稳定通信,并完成日常开发中最常用的数据读写任务。操作前请确保本地已启动 MongoDB 服务(默认监听端口 27017),且 Python 版本不低于 3.6。
第1步:安装官方驱动包
打开终端或命令行工具,执行以下命令获取最新稳定版驱动:
pip install pymongo
验证安装是否成功,可在 Python 环境中导入模块且不报错即表示依赖就绪。
第2步:编写基础连接代码
使用 MongoClient 实例化客户端对象,指定 URI 即可建立网络连接。以下为本地无鉴权环境的典型写法:
from pymongo import MongoClient
# 创建客户端实例,默认连接本地 27017 端口
client = MongoClient("mongodb://localhost:27017/")
# 选择目标数据库(若不存在则首次写入时自动创建)
db = client["sample_db"]
# 选定集合(类似关系型数据库中的表)
collection = db["users"]
print(client.server_info()) # 打印服务器信息验证连通性
执行后若控制台输出服务端版本号,说明连接已成功建立,后续操作均基于 collection 对象展开。
核心数据操作演示
第3步:插入单条或多条文档
向集合中写入 JSON 兼容格式的数据。单个文档推荐使用 insert_one,批量写入使用 insert_many:
# 插入单条记录
document = {"name": "John", "age": 30, "city": "New York"}
result = collection.insert_one(document)
print(f"插入ID: {result.inserted_id}")
# 批量插入多条记录
documents = [
{"name": "Jane", "age": 25, "city": "Los Angeles"},
{"name": "Doe", "age": 40, "city": "Chicago"}
]
batch_result = collection.insert_many(documents)
print(f"批次插入数量: {len(batch_result.inserted_ids)}")
第4步:按条件查询记录
查询是读取数据的核心。精确匹配使用字典作为过滤条件,find_one 返回首个结果,find 返回游标迭代器:
# 查找单个文档
query_single = {"name": "John"}
single_doc = collection.find_one(query_single)
print(single_doc)
# 遍历匹配多个文档
query_multi = {"city": "New York"}
results = collection.find(query_multi)
for doc in results:
print(doc.get("name"), doc.get("age"))
第5步:更新指定字段值
使用 MongoDB 更新操作符控制修改范围。注意务必搭配 $set 防止整行被覆盖:
# 更新符合条件的第一条文档
update_query = {"name": "John"}
new_values = {"$set": {"age": 31}}
collection.update_one(update_query, new_values)
# 批量更新匹配记录
collection.update_many({"city": "New York"}, {"$set": {"city": "Boston"}})
第6步:安全删除匹配文档
删除操作不可逆,执行前建议核对查询条件。生产中请务必确认业务逻辑后再调用删除接口:
# 谨慎操作:仅删除 name 为 John 的单条记录
collection.delete_one({"name": "John"})
# 批量删除匹配城市的所有文档
collection.delete_many({"city": "Chicago"})
操作完成判断与排错
数据写入后,可通过 count_documents({}) 统计集合总数验证落盘情况。若遇到 Connection refused 或 Authentication failed 错误,请按以下顺序排查:
- 检查 MongoDB 服务进程是否正常运行,可通过
systemctl status mongod(Linux)或服务管理器查看状态。 - 确认防火墙未拦截
27017端口,且网络可达。 - 若启用身份验证,需将 URI 替换为
mongodb://username:password@host:port/dbname格式。 - 确认
pymongo版本与服务端兼容性,旧版驱动在部分新特性上可能抛出类型警告。
注意事项与总结
本文梳理了 Python 对接 MongoDB 的标准链路,从环境初始化到高频 CRUD 动作均已提供可直接运行的代码模板。掌握 MongoClient 的生命周期管理以及聚合操作符 $set、$inc 的使用规范,即可应对绝大多数应用层数据读写场景。以上就是Python连接MongoDB数据库并实现基本数据操作的详细内容,更多关于Python数据库交互与pymongo库用法资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









