【问题标题】:MongoDB Grails GORM unexpected behavior with hasMany / belongsToMongoDB Grails GORM hasMany / belongsTo 的意外行为
【发布时间】:2013-10-18 18:10:17
【问题描述】:

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

假设我有两个域类,Foo 和 Bar,其中 Foo hasMany Bar 和 Bar 属于 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,我需要做一些特别的事情来使它符合我的期望吗?

想法?

【问题讨论】:

    标签: mongodb grails grails-orm


    【解决方案1】:

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

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

    对于 Bar 来说是:

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

    它会为你提供,因为它是从父级到子级的级联删除,就像使用 mysql 的情况一样

    希望对你有帮助:)

    【讨论】:

    • 所以这是预期的结果。很高兴知道!
    猜你喜欢
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多