Json Grails-向现有映射域类成员添加新的默认值

Json Grails-向现有映射域类成员添加新的默认值,json,mongodb,grails,web,grails-domain-class,Json,Mongodb,Grails,Web,Grails Domain Class,我有以下域类: class Settings { static constraints = { uid(nullable: false, unique: true) json() } String uid Map json } 我将任意数据存储在json映射成员上,并且我的应用程序已经与存储在MongoDB服务器上的数据一起运行。每个应用程序安装的设置数据都是唯一的 我想向json映射添加另一个属性,修改所有现有数据 例如:

我有以下域类:

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

    String uid
    Map json
}
我将任意数据存储在json映射成员上,并且我的应用程序已经与存储在MongoDB服务器上的数据一起运行。每个应用程序安装的设置数据都是唯一的

我想向json映射添加另一个属性,修改所有现有数据


例如:

当前数据库状态
json={“a”:“true”}

新建数据库状态
json={“a”:“true”,“b”:“1234”}


最好的方法是什么

  • 更新脚本
  • 域类中的更改
  • 重写域类构造函数
请提供一个代码示例:)

  • 使用“更新”操作,将“多重”设置为“真”

    db.collection.update({},{$set:{“b”:“1234”},{multi:true})

  • 如果您的数据集很大,请尝试使用

  • 您是否使用数据库迁移工具?就我个人而言,我喜欢。您可以编写一个SQL迁移,为每个uid将一个新行插入到Settings_json(或任何生成的表名)中。

    谢谢您的回复,所以我想您的答案是手动更新数据库。。。如果没有其他解决方案,我想我会使用这种方法。谢谢你的回答,不,我没有,但我肯定会研究这个问题