У меня уже есть класс документов, хранящийся в моей базе данных (Flask-MongoEngine), и у меня уже есть их уникальный идентификатор. Мой реальный пример более сложен, но, скажем, он выглядит так:
class Stuff(Document):
stuffstuff = StringField()
Я хотел бы создать коллекцию экземпляров Stuff из Stuffs, которые уже есть в моей базе данных. Скажем, я хочу создать новый экземпляр класса ниже из экземпляров 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, могу ли я просто сказать MongoEngine использовать эти существующие Stuffs в качестве аргументов ключевого слова в новой коллекции StuffsCollection? Похоже, это будет более эффективно, чем запрос к базе данных для каждого документа, затем создание нового экземпляра этого документа, а затем передача каждого в мой новый ListField.