sql >> Base de Datos >  >> NoSQL >> MongoDB

Agregue una cadena al final de un campo existente en MongoDB

Iniciando Mongo 4.2 , db.collection.update() puede aceptar una canalización de agregación, lo que finalmente permite la actualización de un campo en función de su valor actual:

// { a: "Hello" }
db.collection.update(
  {},
  [{ $set: { a: { $concat: [ "$a", "World" ] } } }],
  { multi: true }
)
// { a: "HelloWorld" }
  • La primera parte {} es la consulta de coincidencia, filtrando qué documentos actualizar (en este caso, todos los documentos).

  • La segunda parte [{ $set: { a: { $concat: [ "$a", "World" ] } } }] es la canalización de agregación de actualizaciones (tenga en cuenta los corchetes que indican el uso de una canalización de agregación). $set (alias de $addFields ) es un nuevo operador de agregación que en este caso reemplaza el valor del campo (al concatenar a sí mismo con el sufijo "World" ). Observe cómo a se modifica directamente en función de su propio valor ($a ).

  • No olvides { multi: true } , de lo contrario, solo se actualizará el primer documento coincidente.