我正在寻找有关如何最好地实现MongoDB外键ObjectId
字段的建议。似乎有两种可能的选项,包括嵌套的_id
字段或不包含嵌套{'_id':ObjectId('4ee12488f047051590000000'), 'fkUid':{'_id':ObjectId('4ee12488f047051590000001')} }
字段。
查看下面的 fkUid 字段。
{'_id':ObjectId('4ee12488f047051590000000'), 'fkUid':ObjectId('4ee12488f047051590000001')} }
OR
{{1}}
非常感谢任何建议。
答案 0 :(得分:7)
我很难在其中添加额外的字段“图层”,因此我个人只会将ObjectId
直接存储在fkUid
中。
答案 1 :(得分:1)
我建议使用默认的dbref实现,这里描述http://www.mongodb.org/display/DOCS/Database+References并且与大多数特定的语言驱动程序兼容。
答案 2 :(得分:0)
如果您的问题是关于字段的命名(标题中的内容),通常约定是在它引用的对象之后命名。
答案 3 :(得分:0)
你提到的两种方式都是同一个含义。但他们有不同的用法。
像对象'fkUid':{'_id':ObjectId('4ee12488f047051590000001')}
一样存储fkUid有它自己的专业人士。让我举一个例子,假设有一个网站,用户可以发布图像和查看其他用户发布的图像。但在显示图像时,网站还会显示用户的名称/用户名。通过这种方式,您还可以存储'fkUid':{'_id':ObjectId('4ee12488f047051590000001'), username: 'SOME_X'}
等详细信息。当您从数据库获取详细信息时,您不必再次发送请求以获取特定_id
的用户名。
在第二种方式'fkUid':ObjectId('4ee12488f047051590000001')} }
中,您必须向服务器发送另一个请求,仅用于获取名称/用户名,而其他任何内容对同一对象都没有用。