无法使用mongoengine删除文档对象

时间:2020-05-05 06:59:45

标签: python mongodb mongoengine

我正在使用python 3.7和库mongoengine 0.18.2使用mongoDB 4.2。 因此,我想删除一个文档,但出现查找错误。

ODM:

from mongoengine import Document
from mongoengine.fields import *

class Myparent(Document):
  fieldfoo = IntField()
  fieldbar = IntField()


class Mychild(Document):
  fieldfoo = StringField()
  myparent = ReferenceField('Myparent')

现在,当我想删除一个孩子时:

  item = Mychild.objects.get(id=123456)
  item.delete()

我收到此错误:

site-packages/mongoengine/queryset/transform.py", line 60, in query
    fields = _doc_cls._lookup_field(parts)
site-packages/mongoengine/base/document.py", line 1032, in _lookup_field
    raise LookUpError('Cannot resolve field "%s"' % field_name)
mongoengine.errors.LookUpError: Cannot resolve field "myparent"

有任何线索吗?谢谢

1 个答案:

答案 0 :(得分:0)

您提供的ID无效。 Mongo支持12字节二进制BSON类型的格式,绝对不是123456。如果您的ID是正确的,则可以执行以下操作:

item=Mychild.objects(pk='some_id')

item返回的内容都是列表,但是id是唯一的,因此您可以将其写为:

item=Mychild.objects(pk='some_id').first()

item.delete()