Как реплицировать запрос обновления Mongo в Spring Boot и Kotlin? - PullRequest
0 голосов
/ 06 января 2019

Я хочу реплицировать запрос обновления Mongo в Spring Boot с кодом Kotlin.

  • Spring Boot 2.0.6
  • Spring Data MongoDB 2.0.6
  • Драйвер Mongo 3.6.4
  • Котлин 1.2.71

Я пытался выполнить запрос через mongoTemplate, но ни одна опция обновления не позволяет мне передать его в качестве параметра объект типа UpdateOptions.

enter image description here

Обновление запроса Монго для репликации

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 или другую форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...