MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Anexar uma string ao final de um campo existente no MongoDB


Iniciando o Mongo 4.2 , db.collection.update() pode aceitar um pipeline de agregação, permitindo finalmente a atualização de um campo com base em seu valor atual:
// { a: "Hello" }
db.collection.update(
  {},
  [{ $set: { a: { $concat: [ "$a", "World" ] } } }],
  { multi: true }
)
// { a: "HelloWorld" }

  • A primeira parte {} é a consulta de correspondência, filtrando quais documentos atualizar (neste caso, todos os documentos).

  • A segunda parte [{ $set: { a: { $concat: [ "$a", "World" ] } } }] é o pipeline de agregação de atualização (observe os colchetes que significam o uso de um pipeline de agregação). $set (alias de $addFields ) é um novo operador de agregação que neste caso substitui o valor do campo (concatenando a com o sufixo "World" ). Observe como a é modificado diretamente com base em seu próprio valor ($a ).

  • Não se esqueça de { multi: true } , caso contrário, apenas o primeiro documento correspondente será atualizado.