谁能告诉我怎么做
我有一个Collection
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"吗?
我在工作中没有任何问题,我关心的是任务的性能影响.
谢谢
谁能告诉我怎么做
我有一个Collection
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);