Mongoose .populate()是否执行任何优化以减少发送到Mongo的查询数?

Mongoose .populate()是否执行任何优化以减少发送到Mongo的查询数?,mongoose,mongoose-populate,Mongoose,Mongoose Populate,我有一个函数,它使用Mongoose在一个模型上填充13个子文档。要填充的链接调用如下所示: blogPost .populate({ path: 'author', model: 'User' }) .populate({ path: 'blog', model: 'Blog' }) ... .populate({ path: 'tags', model: 'Tags' }, function (err, post) { processPost(post);

我有一个函数,它使用Mongoose在一个模型上填充13个子文档。要填充的链接调用如下所示:

blogPost
  .populate({ path: 'author', model: 'User' })
  .populate({ path: 'blog', model: 'Blog' })
  ...
  .populate({ path: 'tags', model: 'Tags' },
    function (err, post) {
      processPost(post);
    }
  );
总共有13个对.populate的调用,包括最后一个调用,该调用是处理博客文章的回调

这个调用会对Mongo进行>=13次查询,还是Mongoose有一些优化技术来最小化这些语句可能导致的所有额外工作

我查看了Mongoose文档的这一页,其中似乎没有多次讨论使用.populate对性能的影响


因此,我的问题是:.populate是否执行了任何优化以减少发送到Mongo的查询数?

我认为如果您使用了那么多的populate,您应该重新考虑您的模式或Mongo。为什么不将标签存储在文档中的数组中?从外观上看,您将其视为关系数据库。