在MongoDB中,如果想删除集合内的文档,可以使用PyMongo提供的多种方法。本文介绍如何删除单条文档、批量删除符合条件的文档,以及清空整个集合的文档。
1. 删除单个文档 (delete_one)
要删除满足条件的第一条文档,可使用delete_one()
方法。示例如下:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
# 要删除的条件
myquery = { "address": "Mountain 21" }
mycol.delete_one(myquery)
注意:如果有多条文档同时匹配该条件,也只会删除其中第一条。
2. 删除多条文档 (delete_many)
若要一次性删除多条文档,可以使用delete_many()
方法,并传入一个匹配条件:
myquery = { "address": {"$regex": "^S"} } # 匹配地址以S开头的文档
x = mycol.delete_many(myquery)
print(x.deleted_count, " documents deleted.")
这段代码会把所有address
字段以“S”开头的文档删除,并输出删除了多少条。
3. 清空集合中的所有文档
若想将集合中的所有文档全部删除,可传入空查询对象{}
到delete_many()
:
x = mycol.delete_many({})
print(x.deleted_count, " documents deleted.")
这样集合里的所有记录都会被清空,但集合本身仍然存在。
小贴士
- 如果需要彻底删除集合结构,可考虑
drop()
方法,而不是仅仅删除文档。 - 删除操作不可逆,执行前务必确认操作内容。
- 复杂查询可结合更多运算符或正则表达式。
通过以上方法,你已能在 Python 中利用 PyMongo 删除 MongoDB 文档,满足单条删除、批量删除或清空集合的各种需求。