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
之外,不使用它会得到完全相同的结果。
看起来reference
控制文档的链接方式。
当true
时,相关文档由db-refs引用,如果false
,GORM在mongo 中插入简单的id
,也称为Manual references
这意味着这些属性将通过引用存储在Address记录中。当您查询数据库而不是存储整个对象的映射及其映射可能包含的任何对象时,Region的id和Zone的id将存在于记录中。返回Address对象看起来像这样:
{
"id": "2413",
"region": DBRef("region", "1234"),
"zone": DBRef("zone", "4321")
}
对于非嵌入式关联,默认情况下,GORM For MongoDB将使用MongoDB数据库引用(也称为DBRefs)映射文档之间的链接。如果您不喜欢使用DBRef,那么您可以告诉GORM通过使用reference:false映射来使用直接链接。
Gorm映射
可搜索参考