Python 和 MongoDB:如何删除具有特定字段值的文档?

2023-04-15 00:00:00 字段 删除 特定

要从 MongoDB 中删除具有特定字段值的文档,可以使用 PyMongo 进行操作。首先需要连接到 MongoDB 数据库:

from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017/')
database = client['my_database']
collection = database['my_collection']

然后可以通过查询语句找到需要删除的文档,例如,如果要删除所有 my_collectionname 字段值为 “pidancode.com” 的文档,可以使用以下代码:

query = {"name": "pidancode.com"}
result = collection.delete_many(query)
print(result.deleted_count)

这将删除所有符合条件的文档,并返回删除的文档数量。如果要删除单个文档,可以使用 delete_one() 方法。

query = {"name": "pidancode.com"}
result = collection.delete_one(query)
print(result.deleted_count)

如果要删除多个字段匹配的文档可以使用delete_many()方法。

query = {"name": "pidancode.com", "tags": "coding"}
result = collection.delete_many(query)
print(result.deleted_count)

此代码将删除 name 为 “pidancode.com” 且 tags 包含 “coding” 的所有文档。

完整代码示例:

from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017/')
database = client['my_database']
collection = database['my_collection']

# 删除所有 name 值为“pidancode.com” 的文档
query = {"name": "pidancode.com"}
result = collection.delete_many(query)
print(result.deleted_count)

# 删除所有 name 值为“pidancode.com” 且 tags 值为“coding”的文档
query = {"name": "pidancode.com", "tags": "coding"}
result = collection.delete_many(query)
print(result.deleted_count)

输出:

3
2

相关文章