从id中删除PyMongo中的文档

dis*_*ive 11 mongodb pymongo

我似乎在努力寻找删除文档的正确方法.即我应该使用remove()或delete_one(),以及通过id删除的规范方法是什么,这是一个string.

即我应该使用以下内容:

mongo.db.xxx.delete_one({'_id': { "$oid" : str(_id) } })
Run Code Online (Sandbox Code Playgroud)

或者我可以使用其他格式?

mongo.db.xxx.remove({'_id': { "$oid" : str(_id) } })
mongo.db.xxx.remove({'_id': ObjectId(_id) })
Run Code Online (Sandbox Code Playgroud)

什么是规范形式?

Joh*_*yHK 25

remove在pymongo的3.x版本中已弃用,因此当前的规范形式将使用delete_one:

from bson.objectid import ObjectId

result = mongo.db.xxx.delete_one({'_id': ObjectId(_id)})
Run Code Online (Sandbox Code Playgroud)

该调用返回一个DeleteResult,您可以在其中检查该deleted_count字段以查看是否找到要删除的文档