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

Gre*_*egg 7 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]
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Pat*_*Pat 10

通过阅读Grails MongoDB插件文档,您似乎需要专门声明嵌入对象,并且引用是默认值.

考虑到这一点,如果您想确保将Orders作为自己的集合,并嵌入OrderItems,请尝试以下方法:

class Customer {
  List<Order> orders
}

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

class OrderItems {
  // properties go here.   
}
Run Code Online (Sandbox Code Playgroud)

这是文档.