0

我有一个与 mongo DB 交互的 Grails 项目。我想知道创建表示嵌套数据的域类的最佳实践是什么。

数据例如:

settings:{
  user:{id:1234 , name:"john"}
  colors:{header:"red" , footer:"white"}
}

将不胜感激任何帮助或代码示例

4

2 回答 2

0

I think it is reasonable to presume that you are using mongodb plugin.

To put it simple:

Class Settings {
    int user_id
    String user_name
    String colors_header
    String colors_footer
}

If there is a legacy mongodb collection like you presented:

Class User {
    int id
    String name
}
Class Color {
    String header
    String footer
}
Class Settings{
  User user
  Colors colors
  static embedded = ['user','colors']
}
于 2013-01-01T18:41:04.673 回答
0

由于 MongoDB 是完全无模式的,这意味着您不会像关系数据库那样受限于固定数量的列。所以创建嵌套数据相当容易。

这是一个例子:

//the domain class
class Settings {
    Map user
    Map colors
}

//in the groovy controller
def s = new Settings(user: [name:"jhon"],colors:[header:"red" ,footer:"white"] )
s.save(flush: true)
于 2013-01-03T08:25:19.210 回答