mongodb - 为什么 MongoDB 文档建议不要使用 DBREF?

标签 mongodb join reference

MongoDB docs for DBREFs说:

Unless you have a compelling reason to use DBRefs, use manual references instead.

为什么? DBREF 似乎更易于使用,因为它们对数据库和集合名称进行编码,这将减少应用程序中的硬编码。另外,DBREF 是 a standard format that many drivers understand .

这个问题是相关的,但并不完全相同:

MongoDB - is DBREF necessary?

这个问题的答案是嵌入/非规范化比链接更可取,但它没有回答为什么手动链接比 DBREF 更可取的问题。

最佳答案

这里是我所看到的所有结论。

使用DBRef不是join操作,会自动查询第二次或多次,取决于你有多少DBRef在此集合字段中。

假设你有一个集合,它的模型有 10 个 DBRef,你查询它的 10 个元素的列表,其中一个 DBRef真正需要的。一旦您查询,无论您是否需要这些 DBRef,Mongodb 都会自动运行 101(1 + 10*10) 查询。如果手动查询这些字段,只需要少量编码,只需要 11(1 + 1*10) 查询。

那么,你说什么?

关于mongodb - 为什么 MongoDB 文档建议不要使用 DBREF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34617642/

相关文章:

MySQL JOIN 使用任一非空列来引用另一个表

javascript - 排序在 mongodb 中不起作用

java - 如何在mongo DB中的多个文档中找到所需的值

连接表时 MySQL 只读

apache-spark - 为什么广播连接收集数据到驱动程序以洗牌数据?

c++ - 从 C++ 方法返回引用

reference - 如何避免在 Rust 中为可变和不可变引用编写重复的访问器函数?

generics - 编译器如何推断Box正在借用其内容借来的那个?

javascript - 如何在node js中同时对日期和各个日期的值数组进行排序?

mysql - 可扩展的启动持久性