2013-04-28 59 views
1

我有以下域類:的Grails - 添加新的默認值,以現有的地圖域類成員

class Settings { 
    static constraints = { 
     uid(nullable: false, unique: true) 
     json() 
    } 

    String uid 
    Map json 
} 

我任意數據存儲在JSON地圖部件上和我的應用程序已經與存儲在數據活MongoDB服務器。設置數據對於每個應用安裝都是唯一的。

我想添加另一個屬性到json地圖,修改我現有的所有數據。


例子:

當前DB狀態json = {"a":"true"}

新的數據庫狀態json = {"a":"true" , "b":"1234"}


什麼是最好的辦法?

  • 更新腳本?
  • 域類的變化?
  • 覆蓋域類的構造函數?

一個代碼示例,將不勝感激:)

回答

0
  1. 使用更新操作具有多組爲true

    db.collection.update({},{$設置:{「B 「:」 1234" }},{多:真})

  2. 如果您的數據集龐大然後嘗試使用server-side javascript
+0

感謝您的答覆,所以我想你的答案是手動更新數據庫...我想我會用這種方法,如果沒有其他的解決方案,會彈出 – 2013-04-29 04:58:49

0

你使用數據庫遷移工具嗎?我個人喜歡Liquibase。您可以編寫一個SQL遷移,以便爲每個uid插入一個新行到Settings_json(或任何生成的表名稱)中。

+0

感謝您的答覆,我是沒有,但我會絕對要考慮一下 – 2013-04-29 05:00:10

相關問題