Mongoose .populate()是否执行任何优化以减少发送到Mongo的查询数?
我有一个函数,它使用Mongoose在一个模型上填充13个子文档。要填充的链接调用如下所示: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);
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。为什么不将标签存储在文档中的数组中?从外观上看,您将其视为关系数据库。