Python 从mongo引擎中的另一个嵌入文档访问嵌入文档

Python 从mongo引擎中的另一个嵌入文档访问嵌入文档,python,mongodb,mongoengine,Python,Mongodb,Mongoengine,我在mongo engine中有一个文档,其中包含一个嵌入式文档。这是我的模型: class Problem(EmbeddedDocument): id = ObjectId() class Result(EmbeddedDocument): problem = ReferenceField('Problem') class Contest(Document): problem = EmbeddedDocumentField(Problem) 现在我想从结果模型访问

我在mongo engine中有一个文档,其中包含一个嵌入式文档。这是我的模型:

class Problem(EmbeddedDocument):
    id = ObjectId()

class Result(EmbeddedDocument):
    problem = ReferenceField('Problem')

class Contest(Document):
    problem = EmbeddedDocumentField(Problem)

现在我想从
结果
模型访问
问题
。我该怎么做?

嵌入文档和
文档
之间的根本区别在于
嵌入文档
只存在于
文档
内部

EmbeddedDocument
是一个
文档
,它不存储在自己的集合中<代码>嵌入文档应通过
嵌入文档字段
字段类型用作文档上的字段

因此,
EmbeddedDocument
不能有主键,
EmbeddedDocument
它只是文档中的一个dict。详述于

id=ObjectId()
这不是字段的声明。列出了所有可能的字段。由于要声明主键字段,您需要在字段的参数中使用
primary\u key=True


problem=ReferenceField('problem')
EmbeddedDocument
不能作为引用,因为它不是字段。因此,声明嵌入字段的正确方法如下所示:
problem=EmbeddedDocumentField(problem)

您能解释一下数据结构在结尾应该是什么样子吗?我认为在嵌入文档和引用文档时可能会出现一些重复信息。