在Pymongo持续存在后,如何获得对象的ID?
题
我有一个pymongo newbie问题:如果 collection
是pymongo 收藏 我用它来保存一个对象
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
一个命令,就像你一样 insert
. 。因此,要根据其文件删除文件 _id
价值,做类似的事情:
collection.remove({'_id': ObjectId('4c2fea1d289c7d837e000000')})
你可以通过 obj
.
要从文档中删除对象,您必须提及条件,因为您可以为文档指定“ _id”。
_id = db.test.insert({"foo": "test"})
db.test.remove({"_id":_id})
不隶属于 StackOverflow