2013-01-01 2 views
0

나는 mongo DB와 상호 작용하는 Grails 프로젝트를 가지고있다. 중첩 데이터를 나타내는 도메인 클래스를 만드는 것이 가장 좋은 방법인지 알고 싶습니다. 예를 들어Grails와 mongo DB 중첩 데이터 구조

데이터 :

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

어떤 도움 예제 코드

답변

0

나는 당신이 MongoDB의 플러그인을 사용하고 있는지 추정하는 합리적인 생각을 부탁드립니다.

하는 것은 간단 넣으려면 :

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

을 기존 MongoDB를 수집 당신이 선물처럼이있는 경우 :

Class User { 
    int id 
    String name 
} 
Class Color { 
    String header 
    String footer 
} 
Class Settings{ 
    User user 
    Colors colors 
    static embedded = ['user','colors'] 
} 
+0

감사합니다, 나는 플러그인을 사용하고 있습니다 : 여기

은 예입니다. 좀 혼란 스럽네요. 첫 번째 예제를 사용하면 질의를받을 때 중첩 계층이 어떻게 보존됩니까? 코드 예제를 줄 수 있습니까? –

+0

첫 번째 정의는 중첩되지 않고 단순화되고 평평한 구조입니다. 중첩 된 데이터를 원하면 두 번째 데이터를 가져와 기존 데이터 구조와 일치시킵니다. – coderLMN

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)