我正在使用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"
有任何线索吗?谢谢
答案 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()