public class Address {
static mapWith = "mongo"
Region region;
Zone zone;
static mapping = {
id generator: 'identity'
region reference:true
zone reference:true
}
}
我有兴趣知道reference:true
做了什么。
根据我的经验,除非在实际的mongo文档中没有DBRef
,否则将其关闭会产生完全相同的结果。
答案 0 :(得分:2)
看起来reference
可以控制文档的链接方式。
true
时,相关文档由db-refs引用,如果false
,则GORM在mongo中插入简单id
,又名Manual references
答案 1 :(得分:1)
这意味着这些属性将通过引用存储在您的地址记录中。查询数据库时,区域的ID和区域的ID将存在于记录中,而不是存储整个对象的映射以及其映射可能包含的任何对象。返回Address对象看起来像这样:
{
"id": "2413",
"region": DBRef("region", "1234"),
"zone": DBRef("zone", "4321")
}
对于非嵌入式关联,默认情况下,GORM for MongoDB将使用MongoDB数据库引用(也称为DBRefs)映射文档之间的链接。如果您不想使用DBRefs,那么您可以通过使用reference:false映射告诉GORM使用直接链接。