web-dev-qa-db-ja.com

IDからPyMongoのドキュメントを削除しています

ドキュメントを削除する正しい方法を見つけるのに苦労しているようです。つまりたとえば、remove()またはdelete_one()を使用する必要があります。また、IDによる削除の標準的な方法は何ですか。これはstringです。

つまり私は以下を使用する必要があります:

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

または別の形式を使用できますか?

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

正規形とは何ですか?

11
disruptive

removeはpymongoの3.xリリースで非推奨になっているため、現在の正規形式は delete_one を使用することになります。

from bson.objectid import ObjectId

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

呼び出しは DeleteResult を返します。ここで、deleted_countフィールドを調べて、削除するドキュメントが見つかったかどうかを確認できます。

26
JohnnyHK