加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – MongoEngine删除文件

发布时间:2020-12-20 11:52:01 所属栏目:Python 来源:网络整理
导读:我有以下MongoEngine文档 { '_id': 'some_id','data': 'some_data'} 如何使用MongoEngine删除此文档? 我尝试过的: import my_collectionobj = my_collection.MyCol.objects.get(_id='some_id')# obj is correctly found - let's continueobj.delete()# mon
我有以下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)
    ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读