5

mongoengine.DocumentサブクラスUserが定義されています。

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サブクラスのみを埋め込むことができます。それを解決する方法はありますか?

4

2 に答える 2

2

このようにしてみてください:

class User(Document, EmbeddedDocument):
    ...
于 2012-06-08T12:28:52.513 に答える
1

を使用するべきではありませんReferenceFieldか?

そうしないと、2 つの切断された、しかし論理的には同一のドキュメントを保存することになります。

于 2012-06-20T13:33:32.713 に答える