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

时间:2016-01-05 17:23:45

标签: mongodb join reference

MongoDB docs for DBREFs说:

  

除非您有令人信服的理由使用DBRefs,否则请改用手动引用。

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

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

MongoDB - is DBREF necessary?

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

1 个答案:

答案 0 :(得分:0)

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

使用DBRef不是join操作,它会自动查询第二次或更多次,具体取决于您在此收集字段中获得的DBRef

假设您的模型有10 DBRef的集合,则可以查询10个元素'它的列表和其中一个DBRefreally needed。一旦您查询,Mongodb将自动运行101(1 + 10*10)个查询,无论您是否需要这些DBRef。如果您手动查询这些字段,则只需要几个编码,只需要11(1 + 1*10)个查询。

那么,你怎么说?