4

我有一个 PyMongo 新手问题:如果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.

这是怎么回事?

4

4 回答 4

12

你只需要传递remove一个字典,就像你做的那样insert。因此,要根据文档的_id值删除文档,请执行以下操作:

collection.remove({'_id': ObjectId('4c2fea1d289c7d837e000000')})
于 2010-06-22T00:21:23.010 回答
3

insert 返回插入文档的 _id。

并且 remove 将根据 _id 删除,因此请尝试以下操作:

doc_id = db.test.insert({"foo": 1})
db.test.remove(doc_id)
于 2010-06-22T00:58:26.207 回答
1

你可以通过obj

于 2010-06-21T23:22:09.970 回答
-1

要从文档中删除对象,您必须提及条件因为您可以为文档指定“_id”........

_id = db.test.insert({"foo": "test"})
db.test.remove({"_id":_id})
于 2011-01-04T06:53:34.760 回答