Grails MongoDB插件:嵌入式集合与参考

时间:2010-11-19 02:19:56

标签: grails mongodb

最初发布在Grails邮件列表中......

我通常不是数据库人员,但随着最新的mongodb grails插件的发布,我想看看没有SQL数据库的重要性。 MongoDB似乎很有趣。我正在阅读有关面向文档存储的信息,并遇到以下情况:

客户/订单/订单行项目

医生说订单应该是一个集合。客户收藏。 line-items应该是一个嵌入在order对象中的行项目数组。

关于GORM,这种模式是如何确保的?我通常会有以下内容:

class Customer {
    static hasMany = [orders: Order]
}

class Order {
    static hasMany = [orderItems: OrderItem]
    static belongsTo = [customer:Customer]
}

class OrderItem {
    static belongsTo = [order:Order]
}

如何确保订单是自己的集合而不是嵌入客户?如果这是默认值,那么如何确保OrderItems嵌入在Order中而不是它自己的集合中?这里的默认值是什么?

感谢。

1 个答案:

答案 0 :(得分:10)

通过阅读Grails MongoDB插件文档,您似乎需要专门声明嵌入对象,其中引用是默认的。

考虑到这一点,如果你想确保Orders是它自己的集合,并且要嵌入OrderItems,试试这个:

class Customer {
  List<Order> orders
}

class Order {
  List<OrderItem> orderItems
  static embedded = [ 'orderItems' ]
}

class OrderItems {
  // properties go here.   
}

Here's the documentation.