私はすでに(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 に渡すよりも効率的であるように思われます。