2014-03-25 92 views
0

我有2個域類,用戶和狗(例如)的Grails的MongoDB:保存圖值與域值失敗

class User { 
    String id 
    Map<String, Dog> dogs 
} 

class Dog { 
    String name 
} 

我的控制器獲得作爲輸入的JSON

{"key" : "dogKey", "userId" : "someId", "dogName" : "dog"} 

def addDog(){ 
    String key = request.JSON.key 
    User user = User.get(request.JSON.userId) 
    String dogName = request.JSON.dog 
    ... 
    if(! user.dogs){ 
     user.dogs = new HashMap<>(1) 
    } 

    user.dogs.put(key, new Dog(name: dogName)) 
    user.save(flush: true) 
} 

後運行的用戶數據@蒙戈是:

用戶:

{ _id:...., 
    dogs: { 
     "dogKey": null 
    }... 
} 

有人能解釋我什麼我失蹤?

謝謝!

羅伊

+0

拯救我也一直在嘗試,自定義用戶類型(解釋@ mongodb的Grails的插件)。它序列化所有的狗對象(價值:com.something.DogInstance)這不是我正在尋找 – royB

回答

0

可能是狗引用不是在數據庫

def addDog(){ 
     String key = request.JSON.key 
     User user = User.get(request.JSON.userId) 
     String dogName = request.JSON.dog 
     ... 
     if(! user.dogs){ 
      user.dogs = new HashMap<>(1) 
     } 
     Dog dog = new Dog(name: dogName) 
      dog.save(flush:true) 
     user.dogs.put(key, dog) 
     user.save(flush: true) 
    } 
+0

謝謝你的迴應。無連接。狗本身不是一個文件(沒有_id),而是一個嵌入文件 – royB