mongodb - Mongoose 如何在幕后工作

标签 mongodb mongoose mongoose-populate

谁能告诉我

我有一个收藏

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/

相关文章:

mongodb - pymongo 数据库已经存在,但已经有不同的情况

node.js - 使用 React Hook Form 不可编辑字段

javascript - 如何在 Mongoose 中创建/查找?

javascript - 每次 var 更改后更新 res.locals 吗?

node.js - 实例方法中的 Mongoose 种群

javascript - MongoDB:如何在更新前对查询进行排序

javascript - 如何在 Mongoose 发布更新中间件期间访问更新的文档?

node.js - 将一个新对象插入 Mongoose 的子文档数组字段中

node.js - 填充另一个对象引用的对象

node.js - Mongoose 填充两个简单的模式