Я хочу реплицировать запрос обновления Mongo в Spring Boot с кодом Kotlin.
- Spring Boot 2.0.6
- Spring Data MongoDB 2.0.6
- Драйвер Mongo 3.6.4
- Котлин 1.2.71
Я пытался выполнить запрос через mongoTemplate
, но ни одна опция обновления не позволяет мне передать его в качестве параметра объект типа UpdateOptions
.
Обновление запроса Монго для репликации
db.proyectos.update({
_id: ObjectId("5bfa09f0a0441f38d45dcc9c")
},
{
$set: {
"reuniones.$[i].participantes.$[j].firma": "modificar"
}
},
{
arrayFilters: [
{
"i._id": ObjectId("5bfa09f0a0441f38d45dcc99")
},
{
"j.nomina": 2
}
]
})
MongoTemplate, Query, UpdateOptions и Update
MongoTemplate
var mongoTemplate = MongoTemplate(MongoClient("localhost"), "spring_mongo_db")
Запрос
val query: Query = Query()
query.addCriteria(Criteria("_id").`is`(firmaRequest.IdProyecto))
UpdateOptions
val updateOptions: UpdateOptions = UpdateOptions()
updateOptions
.arrayFilters(
Arrays.asList(
Filters.eq("i._id", firmaRequest.IdReunion),
Filters.eq("i.nomina", firmaRequest.NoNomina)
)
)
Обновление
val update: Update = Update()
update.set("reuniones.$[i].participantes.$[j].firma", firmaRequest.DataUri)
Ожидаемое поведение
Я ожидаю, что смогу выполнить запрос через mongoTemplate или другую форму.