2015-10-05 113 views
5

我似乎在努力尋找刪除文檔的正確方法。即我應該使用remove()還是delete_one()作爲例子,以及使用id刪除的規範方法是string從ID刪除PyMongo中的文檔

I.e.我應該使用以下內容:

mongo.db.xxx.delete_one({'_id': { "$oid" : str(_id) } }) 

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

mongo.db.xxx.remove({'_id': { "$oid" : str(_id) } }) 
mongo.db.xxx.remove({'_id': ObjectId(_id) }) 

什麼是規範形式?

回答

15

remove被棄用pymongo的3.X版本,所以目前的規範形式是使用delete_one

from bson.objectid import ObjectId 

result = mongo.db.xxx.delete_one({'_id': ObjectId(_id)}) 

調用返回一個DeleteResult中,你可以檢查deleted_count場,看看它發現要刪除的文件

+0

謝謝,你知道錯誤例外嗎?我目前無法調試。即如果沒有找到ID。 – disruptive

+0

當我在命令行嘗試這個時,我得到以下內容:'NameError:name'ObjectId'未定義' – disruptive

+0

@Navonod如果您尚未這樣做,則需要導入。查看更新的答案。 – JohnnyHK