MongoDB – 是否需要DBREF?

在MongoDB中使用DBREF datatype,文档可能如下所示。但是,每行中的$ ref字段都会感觉到冗余,因为每一行显然指向用户集合。

有没有办法参考其他文件,而没有多余的$ ref-field?

{
    $id: {$oid : "4f4603820e25f4c515000001"},
    title:   "User group",
    users: [ 
        {_id: {$ref: "users", $id: { $oid: "4f44af6a024342300e000002"}}, isAdmin: true }
    ]
],
在我看来,Dbref应该在使用mongodb时避免,至少如果您使用需要可扩展性的大型系统。

因为我知道所有的驱动程序都要求加载DBRef,所以它不是在数据库中加入,这是非常昂贵的。

Is there a way to reference other documents without having the
somewhat redundant $ref-field?

是的,在头脑中保留引用,为“外键”(类似于RefUserId或只是UserId)创建命名约定,并存储引用文档的id。在需要时自行加载参考文件。为了任何非规范化,还要保持眼睛的开放,嵌入你可以做,因为它通常会大大提高性能。

翻译自:https://stackoverflow.com/questions/9412341/mongodb-is-dbref-necessary

转载注明原文:MongoDB – 是否需要DBREF?