猫鼬找人的费用是多少?

时间:2018-12-30 18:25:54

标签: node.js mongoose pre

基于查询后的填充成本似乎是直截了当的,因为可以通过单个数组内查询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);

0 个答案:

没有答案