Стоимость заполнения на основе пост-запроса предельно ясна, поскольку ссылочные элементы могут быть присоединены с помощью одного запроса в массиве LIMITED к элементам, найденным в запросе (количество выходных элементов), но каковастоимость предварительно найденной совокупности с последующим использованием в поисковом запросе?Требует ли это, чтобы все ссылочные документы были загружены в память перед запросом, что может привести к потенциальной гигантской задержке памяти или, возможно, N + 1 временной задержке?
Взять в качестве примера приведенные ниже фрагменты:
const user = ...some user obj here...
const schema = mongoose.Schema({
author: {type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true},
title: {type: String, required: true},
....
});
// define query middleware:
schema.pre('find', function () {
this.populate('author');
});
const bookModel = mongoose.model('Book', schema);
Поиск запроса с использованием предварительно загруженного авторского документа:
// find all books with given author:
bookModel.find({ author : {_id: user._id} }).limit(10);