Документ Mongoengine как EmbeddedDocument

У меня есть mongoengine.Document подкласс Определяется пользователем.

class User(Document): meta = {'collection': 'users', 'allow_inheritance': False} _id = ObjectIdField() password = StringField(max_length=50) name = StringField(max_length=50, required 

теперь я хочу использовать его как отдельный документ со своей собственной коллекцией, но я хочу также использовать его как EmbeddedDocument как часть записи игры:

 class Game(Document): meta = {'collection': 'games', 'allow_inheritance': False} _id = ObjectIdField() name = StringField() owner = EmbeddedField(User) 

но есть проблема. Mongoengine позволяет встраивать только подклассы EmbeddedDocument. Есть ли способ решить эту проблему?

Попробуйте вот так:

 class User(Document, EmbeddedDocument): ... 

Разве вы не должны использовать ReferenceField ?

В противном случае вы сохраняете два отсоединенных, но логически идентичных документа.