在Python中使用PyMongo来删除MongoDB文档

在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 文档,满足单条删除、批量删除或清空集合的各种需求。