1

我有以下域类:

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

    String uid
    Map json
}

我将任意数据存储在 json Map 成员上,并且我的应用程序已经使用存储在 MongoDB 服务器上的数据。每个应用程序安装的设置数据都是唯一的。

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


例子:

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

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


最好的方法是什么?

  • 更新脚本?
  • 域类的变化?
  • 重写域类构造函数?

一个代码示例将不胜感激:)

4

2 回答 2

0
  1. 使用 multi 设置为 true 的更新操作

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

  2. 如果您的数据集很大,请尝试使用服务器端 javascript
于 2013-04-28T18:50:09.143 回答
0

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

于 2013-04-28T22:19:06.017 回答