Mongoengine文档为EmbeddedDocument

时间:2012-06-08 12:00:39

标签: python mongodb mongoengine

我有一个mongoengine.Document子类User defined。

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子类。有办法解决吗?

2 个答案:

答案 0 :(得分:2)

试试这样:

class User(Document, EmbeddedDocument):
    ...

答案 1 :(得分:1)

你不应该使用ReferenceField吗?

否则,您将存储两个断开连接但逻辑相同的文档。