我有一个使用Mongoose在模型上填充13个子文档的函数。对填充的链式调用看起来像这样:
blogPost
.populate({ path: 'author', model: 'User' })
.populate({ path: 'blog', model: 'Blog' })
...
.populate({ path: 'tags', model: 'Tags' },
function (err, post) {
processPost(post);
}
);
(总共有13个calles到.populate,包括给出处理博客帖子的回调的最终调用)。
这次调用是否会对Mongo进行> = 13次查询,或者Mongoose是否有某种优化技术来最小化这些语句可能导致的所有额外工作?
我查看了Mongoose文档的这一页,其中似乎没有包含多次使用.populate对性能影响的讨论。
所以我的问题是:.populate()是否执行任何优化以减少发送给Mongo的查询数量?