Unless you have a compelling reason to use DBRefs, use manual references instead.
为什么? DBREF 似乎更易于使用,因为它们对数据库和集合名称进行编码,这将减少应用程序中的硬编码。另外,DBREF 是 a standard format that many drivers understand .
这个问题是相关的,但并不完全相同:
这个问题的答案是嵌入/非规范化比链接更可取,但它没有回答为什么手动链接比 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/