Grails 3 сохраняя документ mongoDB с _id и id - PullRequest
0 голосов
/ 30 мая 2018

Мы заметили проблему после обновления до Grails 3, когда мы сохраняли документы mongoDB с _id и id.(пример документа ниже)

Как нам остановить сохранение id?Это происходит для каждой коллекции, для которой приложение создает и обновляет документы.

{
"_id" : ObjectId("5b0ed1b710b3641a98aaee63"),
"value" : "testing",
"type" : "testingCreate",
"updateDate" : ISODate("2018-05-30T16:30:39.987Z"),
"updateUser" : "TSTUSR",
"id" : ObjectId("5b0ed1b710b3641a98aaee63")
}

Вызывается сохранение из следующих

def test = new AppParam(type: "testingCreate",
                        updateUser: "TSTUSR", 
                        updateDate: new Date(), 
                        value: "testing")
test.save(failOnError:true, flush:true)

для домена appParam

class AppParam {
ObjectId id
String type
String value
String updateUser
Date updateDate

static mapWith = "mongo"

static mapping = {
    version false
    writeConcern WriteConcern.ACKNOWLEDGED
}

static constraints = {
    type size: 1..50, matches:/^[^<>]{1,50}$/, validator: { field, obj ->
        if (!field.trim()) return ['typeRequired']
        return true
    }
    value size: 1..2000, matches:/^[^<>]{1,2000}$/, validator: { field, obj ->
        if (!field.trim()) return ['valueRequired']
        return true
    }

}
}

Мы используем grailsVersion 3.2.11 и gormVersion 6.1.7.RELEASE

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

После Grails 3.X мы провели еще несколько исследований комментария Майка У, в котором по умолчанию для движка mongodb был задан кодек, а для mongodb.engine = "mapping" мы вводили вручную.

0 голосов
/ 30 мая 2018

Попробуйте следующее в закрытии mapping.

static mapping {
    id column: '_id'
    version false
    writeConcern WriteConcern.ACKNOWLEDGED
}
...