Ubuntu 下 MongoDB 与 Python 交互:pymongo 库的基础使用

引言

在数据驱动的应用开发中,MongoDB 作为文档型数据库因其灵活性和扩展性广受欢迎。Python 通过 pymongo 库提供了便捷的操作接口,本文将详细介绍在 Ubuntu 系统中使用 pymongo 实现基础数据库交互的方法。


环境配置
  1. 安装 MongoDB
    终端执行:

    sudo apt update
    sudo apt install -y mongodb
    sudo systemctl start mongodb
    

  2. 安装 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()


性能优化建议
  1. 使用索引加速查询:
    collection.create_index("age")  # 创建单字段索引
    

  2. 批量操作时优先选用 insert_many/update_many
  3. 使用连接池管理数据库连接

结语

通过 pymongo 库,开发者能够以 Pythonic 的方式高效操作 MongoDB。本文涵盖的连接管理、CRUD 操作等基础技术,可满足大多数应用场景需求。建议进一步探索聚合管道、事务处理等进阶功能以应对复杂业务逻辑。

提示:操作前请备份重要数据,生产环境建议启用 MongoDB 身份验证机制。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐