MongoDB使用hasMany / belongsTo Grails GORM意外行为

时间:2013-10-18 18:10:18

标签: mongodb grails gorm

上下文:我正在使用mongodb插件,虽然这可能与此无关。

假设我有两个域类,Foo和Bar,其中Foo hasMany Bar and Bar belongsTo Foo:

class Foo {
    static hasMany = [bar:Bar]
}

class Bar {
    static belongsTo = [foo:Foo]
}

我希望存储的内容将是Foo的集合(或表),Bar的集合,以及处理映射的FooBar集合。相反,我得到了一个Foo集合和一个Bar集合,其中Bar有一个“foo”键。似乎正在发生的只是添加belongsTo但省略hasMany的预期结果...

A)我的期望是不正确的,预期的结果是什么? B)如果不是A,我需要做些什么来使它符合我的期望吗?

思想?

1 个答案:

答案 0 :(得分:3)

我们知道mongodb是非关系数据库,这就是为什么正在发生的事情是正确的,它没有创建第三个表或集合进行处理有很多,但是当你使用mongodb插件时,你可以查询它就像有很多/ belongsTo,因为你通常使用mysql。在你的情况下,foo的db结构将是:

{ "_id" : NumberLong(1), "version" : 0  }

并且对于Bar将是:

{ "_id" : NumberLong(1), "foo" : NumberLong(1), "version" : 0 }

它将为您提供,因为它是从父级到子级的级联删除,就像使用mysql一样

希望它有助于:)