2013-04-28 54 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

相关问题