除非您有令人信服的理由使用DBRefs,否则请改用手动引用。
为什么呢? DBREF似乎更容易使用,因为它们对数据库和集合名称进行编码,这将导致应用程序中的硬编码减少。另外,DBREF是a standard format that many drivers understand。
这个问题是相关的,但不完全相同:
该问题的答案是嵌入/非规范化优于链接,但它没有回答为什么手动链接比DBREF更可取的问题。
答案 0 :(得分:0)
这是我所看到的所有结论。
使用DBRef
不是join
操作,它会自动查询第二次或更多次,具体取决于您在此收集字段中获得的DBRef
。
假设您的模型有10 DBRef
的集合,则可以查询10个元素'它的列表和其中一个DBRef
是really needed
。一旦您查询,Mongodb将自动运行101(1 + 10*10)
个查询,无论您是否需要这些DBRef
。如果您手动查询这些字段,则只需要几个编码,只需要11(1 + 1*10)
个查询。
那么,你怎么说?