如何在Spring Boot和Kotlin中复制Mongo更新查询?

时间:2019-01-06 02:09:45

标签: spring mongodb spring-boot intellij-idea kotlin

我想用Kotlin代码在Spring Boot中复制一个Mongo更新查询。

  • Spring Boot 2.0.6
  • Spring Data MongoDB 2.0.6
  • Mongo驱动程序3.6.4
  • 科特林1.2.71

我试图通过mongoTemplate执行查询,但是没有更新选项允许我将其传递为UpdateOptions类型的对象作为参数。

Return a value if no record is found

Mongo查询更新以进行复制

db.proyectos.update({
   _id: ObjectId("5bfa09f0a0441f38d45dcc9c")
},
{
   $set: {
      "reuniones.$[i].participantes.$[j].firma": "modificar"
   }
},
{
   arrayFilters: [
      {
         "i._id": ObjectId("5bfa09f0a0441f38d45dcc99")
      },
      {
         "j.nomina": 2
      }
   ]
})

MongoTemplate,查询,UpdateOptions和更新

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或其他形式执行查询。

0 个答案:

没有答案