В чем разница между 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 + = комментарий для добавления этого документа? Мой оригинальный вопрос проистекает из этой путаницы относительно того, как я должен справиться с этим.

Ответы на вопрос(2)

Ваш ответ на вопрос