如何使用 Python 和 PyMongo 从 MongoDB 中删除文档?
要从 MongoDB 中删除文档,我们需要使用 PyMongo 库提供的 delete_one
或 delete_many
方法。这两个方法分别用于删除一个或多个文档。
首先,我们需要连接 MongoDB 数据库:
import pymongo # 创建 MongoClient 对象 client = pymongo.MongoClient("mongodb://localhost:27017/") # 选择数据库 db = client["mydatabase"] # 选择集合 col = db["mycollection"]
现在我们可以使用 delete_one
方法删除一个文档。例如,删除 pidancode.com
的文档:
query = {"name": "pidancode.com"} col.delete_one(query)
要删除多个文档,我们可以使用 delete_many
方法。例如,删除所有以 皮蛋编程
开头的文档:
query = {"name": {"$regex": "^皮蛋编程"}} col.delete_many(query)
在上面的代码中,我们使用了 MongoDB 的 $regex
运算符来匹配以特定字符串开头的文档。^
是正则表达式的元字符,表示字符串的开始。
完整代码如下:
import pymongo # 创建 MongoClient 对象 client = pymongo.MongoClient("mongodb://localhost:27017/") # 选择数据库 db = client["mydatabase"] # 选择集合 col = db["mycollection"] # 删除单个文档 query = {"name": "pidancode.com"} col.delete_one(query) # 删除多个文档 query = {"name": {"$regex": "^皮蛋编程"}} col.delete_many(query)
如果文档成功被删除,delete_one
和 delete_many
方法都会返回一个 DeleteResult
对象,其中包含了操作的结果。我们可以使用 deleted_count
属性获取被删除的文档数量,如下所示:
result = col.delete_many(query) print(result.deleted_count, "文档已删除")
相关文章