Мангуст, какова стоимость предварительно найти население? - PullRequest
0 голосов
/ 30 декабря 2018

Стоимость заполнения на основе пост-запроса предельно ясна, поскольку ссылочные элементы могут быть присоединены с помощью одного запроса в массиве 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);
...