如何更新具有多级数组嵌套的文档中的记录?
我的文档结构如下:
{
"_id": "5bfa09f0a0441f38d45dcc9c",
"nombre": "PROYECTO MAIN",
"area": "Sistemas",
"fecha": "27/01/2018",
"reuniones": [
{
"_id": "5bfa09f0a0441f38d45dcc99",
"objetivo": "Objetivo MODIFICADO",
"fecha": "25/10/2018",
"participantes": [
{
"nomina": 1,
"nombre": "MODIFICADO",
"rol": "rol",
"area": "area",
"firma": "url/imagen.jpg"
},
{
"nomina": 2,
"nombre": "nombre 2",
"rol": "rol",
"area": "area",
"firma": "url/imagen.jpg"
}
]
}
],
"_class": "proyecto"
}
Run Code Online (Sandbox Code Playgroud)
使用以下查询,返回上面提到的文档。
db.proyectos.find({
_id:ObjectId("5bfa09f0a0441f38d45dcc9c"),
"reuniones._id":ObjectId("5bfa09f0a0441f38d45dcc99"),
"reuniones.participantes.nomina":2
})
Run Code Online (Sandbox Code Playgroud)
我想用nomina 2更新参与者的firma字段。
我正在尝试通过邮递员保存一个新的“proyecto”。
我在用着:
我使用了 @PostMapping 注释,但它向我发送了空值,但如果我使用 @RequestMapping 它可以正常工作。当我尝试一种或另一种方式时,我会对代码进行注释,以避免冲突。
ProyectoController.kt:
@RestController
@RequestMapping("/proyectos")
class ProyectoController {
@Autowired
lateinit var proyectoService : ProyectoService
//Not working
@PostMapping("/")
fun createProyecto(proyecto: Proyecto): Proyecto {
return proyectoService.createProyecto(proyecto)
}
//Working
@RequestMapping("/", method = arrayOf(RequestMethod.POST))
fun createProyeto2(@RequestBody proyecto: Proyecto): Proyecto{
return proyectoService.createProyecto(proyecto)
}
}
Run Code Online (Sandbox Code Playgroud)
项目.kt
@Document(collection = "proyectos")
@TypeAlias("proyecto")
data class Proyecto (
@Id
var id: String?,
var nombre: String,
var area: String,
var fecha:String
)
Run Code Online (Sandbox Code Playgroud)