谁能告诉我
我有一个收藏
a {
b: String
c: Date
d: ObjectId --> j
}
j {
k: String
l: String
m: String
}
当我执行:
a.find({ b: 'thing' }).populate('d').exec(etc..)
这实际上是在后台对 MongoDB 执行两个查询以返回所有项目“j”吗?
我没有问题让填充工作,我担心的是任务的性能影响。
谢谢
最佳答案
Mongoose 使用两个查询来完成请求。
a
集合被查询以获取与主查询匹配的文档,然后查询 j
集合以填充 d
文档中的字段。
您可以通过启用调试输出查看 Mongoose 正在使用的查询:
mongoose.set('debug', true);
关于mongodb - Mongoose 如何在幕后工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28504046/