Python操作MongoDB
当你开始写爬虫、内容项目,或者保存结构变化较多的数据时,Python 和 MongoDB 的组合会非常自然。
因为 Python 里的字典和列表,本来就和文档结构非常接近。
本节目标
- 学会安装 MongoDB 的 Python 客户端
- 学会建立连接
- 学会插入、查询、更新、删除文档
- 理解 Python 字典和 MongoDB 文档之间的自然对应关系
安装客户端
bash
pip install pymongo安装完成后,就可以在 Python 中使用 MongoDB。
建立连接
python
from pymongo import MongoClient
client = MongoClient("mongodb://127.0.0.1:27017/")
db = client["study_db"]
collection = db["articles"]这里:
study_db是数据库名articles是集合名
插入一条文档
python
from pymongo import MongoClient
client = MongoClient("mongodb://127.0.0.1:27017/")
db = client["study_db"]
collection = db["articles"]
doc = {
"title": "Python 入门",
"author": "小明",
"views": 120
}
result = collection.insert_one(doc)
print(result.inserted_id)这表示把一个字典风格的数据写进 MongoDB。
查询文档
python
for item in collection.find():
print(item)输出结果可能像:
text
{'_id': ObjectId('...'), 'title': 'Python 入门', 'author': '小明', 'views': 120}为什么会多一个 _id
这是 MongoDB 自动生成的唯一标识,属于正常现象。
条件查询
python
for item in collection.find({"author": "小明"}):
print(item)这表示只查作者为“小明”的文档。
更新文档
python
collection.update_one(
{"author": "小明"},
{"$set": {"views": 200}}
)这里:
- 第一个字典是查询条件
- 第二个字典是更新动作
$set 表示更新指定字段值。
删除文档
python
collection.delete_one({"author": "小明"})这表示删除符合条件的一条文档。
一个完整的增删改查流程
python
from pymongo import MongoClient
client = MongoClient("mongodb://127.0.0.1:27017/")
db = client["study_db"]
collection = db["articles"]
# 新增
collection.insert_one({
"title": "Django 入门",
"author": "小红",
"views": 88
})
# 查询
for item in collection.find({"author": "小红"}):
print(item)
# 更新
collection.update_one(
{"author": "小红"},
{"$set": {"views": 150}}
)
# 删除
collection.delete_one({"author": "小红"})这个例子已经把 MongoDB 最常见的基础操作串起来了。
为什么 Python 和 MongoDB 很搭
因为 Python 中最常见的数据结构之一是字典,而 MongoDB 文档本身就很像 JSON 对象。
例如:
python
doc = {
"title": "Python 入门",
"author": "小明",
"tags": ["python", "基础"]
}这种结构直接插入 MongoDB 会非常自然。
常见错误
1. 连不上 MongoDB
常见原因:
- MongoDB 服务没启动
- 地址写错
- 端口不对
2. 查询结果里出现 _id 就慌
这是 MongoDB 默认生成的主键,非常正常。
3. 以为 MongoDB 查询语法和 SQL 一样
MongoDB 的查询风格更偏字典结构,不要硬套 SQL 写法。
练习题
练习 1
用 Python 连接你的 MongoDB。
练习 2
插入一条课程文档。
练习 3
查询作者为某个人的所有文档。
练习 4
更新某条文档的浏览量。
练习 5
自己总结:
- Python 字典和 MongoDB 文档为什么很接近
本节小结
这一节的核心,是把 Python 和 MongoDB 真正连接起来。
你最重要的收获应该是:
- 会建立 MongoDB 连接
- 会做最基础的增删改查
- 理解 Python 字典和 MongoDB 文档的自然关系
只要这一层打牢,后面你在爬虫或内容项目中用 MongoDB 存数据时,就会更顺手。