В чем разница между EmbeddedDocumentField и ReferenceField в mongoengine
Внутренне, каковы различия между этими двумя полями? На какую схему эти поля отображаются в монго? Кроме того, как документы с отношениями должны быть добавлены к этим полям? Например, если я использую
from mongoengine import *
class User(Document):
name = StringField()
class Comment(EmbeddedDocument):
text = StringField()
tag = StringField()
class Post(Document):
title = StringField()
author = ReferenceField(User)
comments = ListField(EmbeddedDocumentField(Comment))
и позвонить
>>> some_author = User.objects.get(name="ExampleUserName")
>>> post = Post.objects.get(author=some_author)
>>> post.comments
[]
>>> comment = Comment(text="cool post", tag="django")
>>> comment.save()
>>>
я должен использовать post.comments.append (комментарий) или post.comments + = комментарий для добавления этого документа? Мой оригинальный вопрос проистекает из этой путаницы относительно того, как я должен справиться с этим.