如何使用 Python 和 PyMongo 删除所有符合正则表达式的文档?
要删除所有符合正则表达式的文档,你需要先连接到 MongoDB 服务器,然后选择要操作的数据库和集合。接下来,使用 PyMongo 的 delete_many() 方法来删除所有符合正则表达式的文档。
以下是一个示例代码,它使用 PyMongo 和 Python 3.x,在名为“test”的数据库中的名为“mycollection”的集合中删除所有包含字符串“pidancode.com”或“皮蛋编程”的文档。
import re from pymongo import MongoClient # 连接到 MongoDB 服务器 client = MongoClient('localhost', 27017) # 选择要操作的数据库和集合 db = client['test'] collection = db['mycollection'] # 删除所有符合正则表达式的文档 regex = re.compile('pidancode\.com|皮蛋编程') result = collection.delete_many({'field': {'$regex': regex}}) print(result.deleted_count, '个文档已被删除')
在上面的代码中,我们使用了 PyMongo 的 delete_many() 方法。该方法采用一个查询文档作为参数,该文档描述要删除的文档符合的条件。在我们的示例中,我们使用了正则表达式来匹配包含字符串“pidancode.com”或“皮蛋编程”的文档,并使用了“$regex”运算符来进行正则表达式匹配。
最后,我们打印出已删除的文档数量,以确认操作已成功完成。
相关文章