网站首页 > 精选文章 / 正文
MongoDB 是一种非关系型(NoSQL)数据库,具有高性能和灵活的数据结构。Python 提供了强大的库(如 pymongo 和 motor)用于与 MongoDB 集成。
1. 安装所需库
使用 pymongo 操作 MongoDB:
bash
pip install pymongo
对于异步操作,可以使用 motor:
bash
pip install motor
2. 使用 PyMongo 操作 MongoDB
(1)连接到 MongoDB
python
from pymongo import MongoClient
# 连接到 MongoDB
client = MongoClient("mongodb://localhost:27017/") # 替换为你的 MongoDB 地址
db = client["your_database"] # 选择数据库
collection = db["your_collection"] # 选择集合
print("连接成功!")
(2)基本 CRUD 操作
创建(Insert)
插入单个文档:
python
data = {"name": "Alice", "age": 30, "email": "alice@example.com"}
collection.insert_one(data)
print("插入成功!")
插入多个文档:
python
data_list = [
{"name": "Bob", "age": 25},
{"name": "Carol", "age": 29}
]
collection.insert_many(data_list)
读取(Query)
查询单个文档:
python
result = collection.find_one({"name": "Alice"})
print(result)
查询多个文档:
python
results = collection.find({"age": {"$gt": 25}}) # 查询 age > 25 的文档
for doc in results:
print(doc)
只返回指定字段:
python
result = collection.find({}, {"name": 1, "_id": 0}) # 仅返回 name 字段,不返回 _id
更新(Update)
更新单个文档:
python
collection.update_one({"name": "Alice"}, {"$set": {"age": 31}})
更新多个文档:
python
collection.update_many({"age": {"$lt": 30}}, {"$set": {"status": "young"}})
删除(Delete)
删除单个文档:
python
collection.delete_one({"name": "Alice"})
删除多个文档:
python
collection.delete_many({"age": {"$lt": 30}})
3. 使用 Motor 异步操作 MongoDB
Motor 是基于异步的 MongoDB 驱动,适合与异步框架如 asyncio 搭配使用。
(1)异步连接
python
import motor.motor_asyncio
import asyncio
# 异步连接到 MongoDB
client = motor.motor_asyncio.AsyncIOMotorClient("mongodb://localhost:27017")
db = client["your_database"]
collection = db["your_collection"]
async def main():
print("连接成功!")
asyncio.run(main())
(2)异步 CRUD 操作
异步插入:
python
async def insert_data():
await collection.insert_one({"name": "Alice", "age": 30})
asyncio.run(insert_data())
异步查询:
python
async def fetch_data():
result = await collection.find_one({"name": "Alice"})
print(result)
asyncio.run(fetch_data())
4. 聚合操作
MongoDB 支持强大的聚合框架,用于数据分析和处理。
示例:按年龄分组并统计数量:
python
pipeline = [
{"$group": {"_id": "$age", "count": {"$sum": 1}}}
]
results = collection.aggregate(pipeline)
for result in results:
print(result)
5. 小贴士
- 使用 Atlas 云数据库: 如果使用 MongoDB Atlas 云服务,需将连接字符串替换为 Atlas 提供的 URI。
- 性能优化:
- 索引:为查询字段创建索引以加速查询。
- 批量操作:对大量数据使用 insert_many 或批量更新。
- 数据安全: 避免将敏感信息硬编码在代码中,使用环境变量存储 MongoDB 的连接信息。
Tags:mongodb windows安装
- 上一篇:工具 | 非关系型数据库mongo操作入门
- 下一篇:Mongodb 集群搭建方法
猜你喜欢
- 2025-01-15 ThinkPHP6开发博客实战入门(二),ThinkPHP6的安装与配置
- 2025-01-15 Python之Web开发框架学习-Django基础及安装
- 2025-01-15 Mongodb 集群搭建方法
- 2025-01-15 工具 | 非关系型数据库mongo操作入门
- 2025-01-15 宝塔面板安装NodeJS程序并配置https教程
- 2025-01-15 .NET Core使用MongoDB开发ToDoList系统(8)-Ant Design Blazor前端框架搭建
- 2025-01-15 一款MongoDB可视化数据管理工具,你值得拥有
- 2025-01-15 Spring系列之集成MongoDB的2种方法
- 2025-01-15 linux ubuntu 安装mongo教程(实践步骤)
- 2025-01-15 nosql之mongodb