Pymongoで持続した後、オブジェクトのIDを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3089067

  •  28-09-2019
  •  | 
  •  

質問

私はピモンゴの初心者の質問を持っています:if collection ピモンゴです コレクション そして、私はそれを使用してオブジェクトを保存します

obj = {'foo': 'bar'}
collection.insert(obj)

その後、mongodbは自動的に生成されます _id フィールドのフィールド obj;一度これを確認できます

print obj

そのようなものが生成されます

{'foo': 'bar', '_id': ObjectId('4c2fea1d289c7d837e000000')}

私の質問は、どうすればそれを手に入れることができますか _id 私がそれを使用できるように戻って?

たとえば、削除したい場合 obj データベースから、私は次のようなことをしたいと思います

collection.remove(obj['_id'])

しかし、これを試してみると、メッセージが表示されます

TypeError: 'ObjectId' object is unsubscriptable.

どうしたの?

役に立ちましたか?

解決

挿入挿入ドキュメントの_IDを返します。

_idに基づいて削除する削除があるので、次のようなものを試してください。

doc_id = db.test.insert({"foo": 1})
db.test.remove(doc_id)

他のヒント

合格するだけです remove あなたがしたように、dict insert. 。したがって、ドキュメントに基づいてドキュメントを削除します _id 値、次のようなことをします

collection.remove({'_id': ObjectId('4c2fea1d289c7d837e000000')})

あなたはただ通過することができます obj.

ドキュメントからオブジェクトを削除するには、ドキュメントに「_id」を指定できるため、条件について言及する必要があります........

_id = db.test.insert({"foo": "test"})
db.test.remove({"_id":_id})
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top