1

私はすでに(Flask-MongoEngine)データベースに保存されているドキュメントのクラスを持っており、それらの一意の id をすでに持っています。私の実際の例はもっと複雑ですが、次のようになります。

class Stuff(Document):
    stuffstuff = StringField()

既にデータベースにある Stuffs から Stuff インスタンスのコレクションを作成したいと考えています。現在データベースにある Stuff インスタンスから、以下のクラスの新しいインスタンスを作成したいとしましょう。

class StuffsCollection(Document):
    lotsofstuffs = ListField(ReferenceField(Stuff))

ReferenceFieldのドキュメントでは、StuffsCollection インスタンスを作成する唯一の方法は、最初に Stuff のインスタンスを作成し、次にそれらをキーワード引数として渡すことのようです。例えば:

a_thing = Stuff(stuffstuff="here's a thing")
a_thing.save()
some_things = StuffsCollection(lotsofstuffs=[a_thing])
some_things.save()

Stuff インスタンスを参照する一意の ID を既に持っているので、MongoEngine にこれらの既存の Stuffs を新しい StuffsCollection のキーワード引数として使用するように指示できますか? これは、ドキュメントごとにデータベースにクエリを実行し、そのドキュメントの新しいインスタンスを作成してから、それぞれを新しい ListField に渡すよりも効率的であるように思われます。

4

1 に答える 1