《Ubuntu 下 MongoDB 与 Python 交互:pymongo 库的基础使用》
·
Ubuntu 下 MongoDB 与 Python 交互:pymongo 库的基础使用
引言
在数据驱动的应用开发中,MongoDB 作为文档型数据库因其灵活性和扩展性广受欢迎。Python 通过 pymongo 库提供了便捷的操作接口,本文将详细介绍在 Ubuntu 系统中使用 pymongo 实现基础数据库交互的方法。
环境配置
-
安装 MongoDB
终端执行:sudo apt update sudo apt install -y mongodb sudo systemctl start mongodb -
安装 Python 依赖
创建虚拟环境并安装库:python3 -m venv mongo_env source mongo_env/bin/activate pip install pymongo
核心操作
1. 数据库连接
from pymongo import MongoClient
# 连接本地数据库
client = MongoClient('localhost', 27017)
db = client['example_db'] # 创建/选择数据库
collection = db['users'] # 创建/选择集合
2. 数据插入
# 插入单条文档
user_data = {"name": "张三", "age": 28, "skills": ["Python", "MongoDB"]}
insert_result = collection.insert_one(user_data)
print(f"插入文档ID: {insert_result.inserted_id}")
# 批量插入
users = [
{"name": "李四", "age": 32},
{"name": "王五", "age": 25}
]
collection.insert_many(users)
3. 数据查询
# 查询所有文档
for doc in collection.find():
print(doc)
# 条件查询(年龄大于30)
query = {"age": {"$gt": 30}}
results = collection.find(query)
for res in results:
print(res["name"])
4. 数据更新
# 更新单条文档
update_filter = {"name": "张三"}
new_values = {"$set": {"age": 30}}
collection.update_one(update_filter, new_values)
# 批量更新(年龄增加1岁)
collection.update_many({}, {"$inc": {"age": 1}})
5. 数据删除
# 删除匹配文档
collection.delete_one({"name": "李四"})
# 清空集合
collection.delete_many({})
完整示例
from pymongo import MongoClient
def db_operations():
client = MongoClient('localhost', 27017)
db = client['test_db']
col = db['employees']
# 插入数据
col.insert_many([
{"name": "赵明", "position": "工程师", "level": 3},
{"name": "周婷", "position": "设计师", "level": 2}
])
# 查询并更新
for emp in col.find({"level": {"$lt": 3}}):
col.update_one(
{"_id": emp["_id"]},
{"$set": {"level": emp["level"] + 1}}
)
# 输出结果
print("更新后数据:")
for doc in col.find():
print(doc)
if __name__ == "__main__":
db_operations()
性能优化建议
- 使用索引加速查询:
collection.create_index("age") # 创建单字段索引 - 批量操作时优先选用
insert_many/update_many - 使用连接池管理数据库连接
结语
通过 pymongo 库,开发者能够以 Pythonic 的方式高效操作 MongoDB。本文涵盖的连接管理、CRUD 操作等基础技术,可满足大多数应用场景需求。建议进一步探索聚合管道、事务处理等进阶功能以应对复杂业务逻辑。
提示:操作前请备份重要数据,生产环境建议启用 MongoDB 身份验证机制。
更多推荐
所有评论(0)