В моих good'ol Граалей (3.1.x) приложение у меня есть такие строкиGORM автономный: нет updateOne() с картами
ModuleState.collection.updateOne(
[ compositeKey:ck ],
[ $set:[ compositeKey:ck, dateUpdated:new Date(), online:true ] ],
[ upsert:true ])
В моем Grails-бесплатное приложение с GORM standalone
:
compile 'org.grails:grails-datastore-gorm-mongodb:6.0.4.RELEASE'
эта линия бросает исключение
groovy.lang.MissingMethodException: нет подписи метода: com.mongodb.MongoCollectionImpl.updateOne() применяется для аргумента типы: (java.util.LinkedHashMap, java.util.LinkedHashMap, java.util.LinkedHashMap) значения: [[compositeKey: 111], [$ set: [...]], ...] Возможные решения: updateOne (org.bson.conversions.Bson, org.bson.conversions.Bson), updateOne (org.bson.conversions.Bson, org.bson.conversions.Bson, com.mongodb.client.model.UpdateOptions)
так что новые способы использования карт не вводятся.
Любой способ исправить это и снова сделать GORM?
Почему мы используем карты? Я имею в виду, что оператор $ set принимает пару значений поля правильно? Вы пытаетесь передать все ключевые значения сразу? вы можете легко обернуть ключевое значение в качестве объекта bson. – Veeram