我有以下MongoEngine文档
{
'_id': 'some_id',
'data': 'some_data'
}
如何使用MongoEngine删除此文档?
我尝试过的:
import my_collection
obj = my_collection.MyCol.objects.get(_id='some_id')
# obj is correctly found - let's continue
obj.delete()
# mongoengine.errors.ValidationError: 'None' is not a valid ObjectId
obj.delete('some_id')
# TypeError: delete() takes 1 positional argument but 2 were given
obj.delete(_id='some_id')
# mongoengine.errors.ValidationError: 'None' is not a valid ObjectId
– 注意
奇怪的是,以下工作完美:
my_collection.MyCol.objects.delete()
# delete all documents in the collection
但我遵循了MongoEngine文档,仍然无法删除只删除一个特定文档.
最佳答案 如果您的文档覆盖_id,则必须指明它仍然是主键.从以下位置更改文档类定义:
class MyCol(Document):
_id = db.StringField()
...
要指定主键:
class MyCol(Document):
_id = db.StringField(primary_key=True)
...