Cómo usar el valor de otro campo mediante java (Spring) mongodb update y push?
Antes de la actualización:
{
id:…,
field1: v1,
field2: [v2,v3]
}
v* son instancias de la clase V
Después de la actualización:
{
id:…,
field1: new_v,
field2: [v1,v2,v3]
}
Se intentó lo siguiente:
Consulta select = Consulta.consulta(Criterio.donde(id).en(docIdList));
Actualizar actualización = nueva Actualización();
actualización.presionar(“field2”).enPosición(0).valor(“$field1”);
V new_v = new V(“NUEVO”);
actualización.establecer(“field1”,new_v);
ResultadoDeActualización resultadoDeActualización = mongoTemplate.actualizarMúltiples(select, actualización,V.class);
El problema es que se obtiene lo siguiente:
{
id:…,
field1: new_v,
field2: [field1,v2,v3]
}
davy.ai
Necesitas actualizar el objeto
update
para usar el operador$set
en lugar depush
:Esto debería dar como resultado la salida deseada: