Mongoose を使用してモデルに 13 のサブドキュメントを作成する関数があります。populate の連鎖呼び出しは次のようになります。
blogPost
.populate({ path: 'author', model: 'User' })
.populate({ path: 'blog', model: 'Blog' })
...
.populate({ path: 'tags', model: 'Tags' },
function (err, post) {
processPost(post);
}
);
(ブログ投稿を処理するコールバックが与えられる最後の呼び出しを含め、.populate には合計 13 回の呼び出しがあります)。
この呼び出しは Mongo に対して >= 13 のクエリを実行しますか? それとも、Mongoose には、これらのステートメントが引き起こす可能性のあるすべての余分な作業を最小限に抑えるための何らかの最適化手法がありますか?
Mongoose ドキュメントのこのページを確認しましたが、.populate を複数回使用した場合のパフォーマンスへの影響についての議論は含まれていないようです。
だから私の質問は: .populate() は、Mongo に送信されるクエリの数を減らすために最適化を実行しますか?