我有一个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})
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top