用python删除mongodb文档,很方便快捷。
collection.remove()删除所有文档
collection.remove({"fields":"xxx"}) 删除字段为某值的文档
collection.remove({"fields":"xxx",1}, 删除字段为某值的第一个文档
在最新的 pymongo包中,remove方法已经放弃了,可以用delete_one,delete_many方法替代。
from pymongo import MongoClient
# 连接服务器
conn = MongoClient("101.132.96.241", 27017)
# 连接数据库
db = conn.pooshsj01
# 获取集合
collection = db.site
#删除条件
query = {"_id": {"$regex": site}}
#删除所有
collection.delete_many(query)
collection.close()
在删除mongodb文档中 正则匹配有bug,
比如 文档id : 5d68d76ce4b0d2ad049c634a-1221313232
id:5d68d76ce4b0d2ad049c634a-1222313232
id:5d68d76ce4b0d2ad049c634a-1231313232
删除正则匹配 query = {"_id": {"$regex": "^5d68d76ce4b0d2ad049c634a-1221*"}}
执行删除collection.delete_many(query)
结果,把上面三个id文档都删除了,不是本意只删除id前缀为5d68d76ce4b0d2ad049c634a-1221的文档,
提示:
删除要谨慎,执行many删除,可能会出现未知结果、,最好还是精确删除,模糊删除不太准确。 你说呢。