我正在尝试使用 scala 和响应式 mongo 更新嵌套列表中的元素。我试过这个:
def updatethirdList(secondListElementId: UUID, firstObject: FirstObject): Future[Either[String, UUID]] = {
val query = Json.obj("secondList.thirdList._id" -> secondListElementId)
val update = Json.obj("$set" -> Json.obj("secondList.$.thirdList" -> sessionType))
collection.update(query, update).map {
case result if result.ok == true => Right(secondListElementId)
case result => Left(result.message)
}
}
结构:
{
"firstList":[{
"secondList":[{
"thirdList":[{
"firstObject":""
}]
}]
}]
}
我的代码的问题是它给出了这个结果:firstList.0.secondList.0.thirdList = firstObject 它应该给出例如这个:firstList.0.secondList.0.thirdList.0 = firstObject
我试过这个:
val update = Json.obj("$set" -> Json.obj("secondList.$.thirdList.$" -> firstObject))
但我收到此错误:MongoDB: Too many positional (ie '$') elements found in path
请提供任何帮助