是否有可能做这样的事情?
class Doc1:
fieldd1 = StringField()
class Doc2:
fieldd2 = ReferenceField(Doc1.fieldd1)
或者我应该只是引用文档,然后拿到现场信息,每当我需要它
是否有可能做这样的事情?
class Doc1:
fieldd1 = StringField()
class Doc2:
fieldd2 = ReferenceField(Doc1.fieldd1)
或者我应该只是引用文档,然后拿到现场信息,每当我需要它
这不是更多钞票,这是关于文件。 要获得fieldd1
你必须做到:
class Doc1(Document):
fieldd1 = StringField()
class Doc2(Document):
fieldd2 = ReferenceField(Doc1)
Doc2.objects.first().fieldd2.fieldd1
如果你只想包括到另一个文件作为一个文档的一部分,然后再看看EmbeddedDocument
和EmbeddedDcoumentField
:
class Doc1(EmbeddedDocument):
fieldd1 = StringField()
class Doc2(Document):
fieldd2 = EmbeddedDcoumentField(Doc1)
Doc2.objects.first().fieldd2.fieldd1
但你总是可以设置自己的属性:
class Doc1(Document):
fieldd1 = StringField()
class Doc2(Document):
fieldd2 = ReferenceField(Doc1)
@property
def fieldd1(self):
return self.fieldd2.fieldd1
Doc2.objects.first().fieldd1
见文档: https://mongoengine-odm.readthedocs.org/en/latest/guide/defining-documents.html 。