PyMongo:一个MongoDB数据库接口

PyMongo 是什么?

PyMongo 是 MongoDB 官方推出的 Python 驱动程序。它就像是咱们操作 MongoDB 的”遥控器”,让我们能用 Python 代码来完成数据库的增删改查等各种操作。无论是存储用户信息、处理日志数据,还是管理商品清单,PyMongo 都能帮咱们搞定!

安装 PyMongo
首先,咱们得把 PyMongo 请到咱们的”开发工具箱”里来。安装很简单,用 pip 就行:


pip install pymongo

创建你的第一个 PyMongo 连接
来看看怎么用 PyMongo 连接 MongoDB 并进行基本操作:


from pymongo import MongoClient

# 创建连接
client = MongoClient('mongodb://localhost:27017/')

# 选择数据库
db = client['my_database']

# 选择集合(类似 SQL 中的表)
collection = db['my_collection']

# 插入一条数据
data = {"name": "小明", "age": 18, "hobby": "编程"}
result = collection.insert_one(data)
print(f'插入的文档 ID: {result.inserted_id}')

# 查询数据
query = {"name": "小明"}
user = collection.find_one(query)
print(f'查询结果: {user}')

# 更新数据
new_values = {"$set": {"age": 19}}
collection.update_one(query, new_values)

# 删除数据
collection.delete_one(query)

首先创建了 MongoDB 的连接
选择要操作的数据库和集合
演示了增删改查四个基本操作
每个操作都很直观,跟说话一样自然

PyMongo 的高级查询

PyMongo 支持 MongoDB 的高级查询功能,来看个例子:


# 批量插入数据
students = [
    {"name": "小明", "age": 18, "score": 90},
    {"name": "小红", "age": 19, "score": 95},
    {"name": "小华", "age": 18, "score": 85}
]
collection.insert_many(students)

# 复杂查询
results = collection.find(
    {
        "age": {"$gte": 18},  # 年龄大于等于 18
        "score": {"$gt": 85}   # 分数大于 85
    }
).sort("score", -1)  # 按分数降序排序

for student in results:
    print(f"姓名: {student['name']}, 分数: {student['score']}")
	

使用聚合管道
MongoDB 的聚合管道功能特别强大,来看看怎么用:


# 计算每个年龄段的平均分数
pipeline = [
    {
        "$group": {
            "_id": "$age",
            "avg_score": {"$avg": "$score"},
            "count": {"$sum": 1}
        }
    },
    {
        "$sort": {"avg_score": -1}
    }
]

results = collection.aggregate(pipeline)
for result in results:
    print(f"年龄: {result['_id']}, 平均分: {result['avg_score']:.2f}, 人数: {result['count']}")

提醒
记得在程序结束时关闭 MongoDB 连接:


client.close()

在实际项目中要注意数据库的安全性,建议使用用户名密码认证
对于大量数据的操作,要考虑使用批量操作来提高效率
记得处理可能出现的异常情况

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...