2015-10-05 8 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)}) 

コールは、あなたがどうかを確認するためにdeleted_countフィールドを検査することができているDeleteResultを返します。それは、削除する文書を見つけた

+0

ありがとう、エラーの例外をご存知ですか?私は現時点ではデバッグできません。私。 IDが見つからない場合 – disruptive

+0

これをコマンドラインで試してみると、次のようになります: 'NameError:name 'ObjectId' is not defined ' – disruptive

+0

@Navonodそれをまだインポートしていない場合は、インポートする必要があります。更新された回答をご覧ください。 – JohnnyHK

関連する問題