Como substituir strings no mongodb (com exemplo)


Você pode usar a seguinte sintaxe para substituir uma string específica em um campo no MongoDB:

 db.myCollection.updateMany(
  { fieldName: { $regex : /old/ } },
  [{
    $set : { fieldName: {
      $replaceOne : { input: " $fieldName ", find: " old ", replacement: " new " }
    }}
  }]
)

Este exemplo específico substitui a string “old” por “new” no campo chamado “fieldName” dentro da coleção chamada myCollection .

O exemplo a seguir mostra como usar essa sintaxe na prática com uma equipe de cobrança com os seguintes documentos:

 db.teams.insertOne({team: " Mavs ", conference: " Western ", points: 31})
db.teams.insertOne({team: " Spurs ", conference: " Western ", points: 22})
db.teams.insertOne({team: " Rockets ", conference: " Western ", points: 19})
db.teams.insertOne({team: " Celtics ", conference: " Eastern ", points: 26})
db.teams.insertOne({team: " Cavs ", conference: " Eastern ", points: 33})
db.teams.insertOne({team: " Nets ", conference: " Eastern ", points: 38})

Exemplo: Substitua uma String no MongoDB

Podemos usar o seguinte código para substituir a string “Western” por “West” no campo de conferência :

 db.teams.updateMany(
  { conference: { $regex : /Western/ } },
  [{
    $set : { conference: {
      $replaceOne : { input: " $conference ", find: " Western ", replacement: " West " }
    }}
  }]
)

Esta é a aparência da coleção atualizada agora:

 { _id: ObjectId("620139494cb04b772fd7a8fa"),
  team: ' Mavs ',
  conference: ' West ',
  points: 31 }
{ _id: ObjectId("620139494cb04b772fd7a8fb"),
  team: ' Spurs ',
  conference: ' West ',
  points: 22 }
{ _id: ObjectId("620139494cb04b772fd7a8fc"),
  team: ' Rockets ',
  conference: ' West ',
  points: 19 }
{ _id: ObjectId("620139494cb04b772fd7a8fd"),
  team: ' Celtics ',
  conference: ' Eastern ',
  points: 26 }
{ _id: ObjectId("620139494cb04b772fd7a8fe"),
  team: ' Cavs ',
  conference: ' Eastern ',
  points: 33 }
{ _id: ObjectId("620139494cb04b772fd7a8ff"),
  team: ' Nets ',
  conference: ' Eastern ',
  points: 38 }

Observe que todo documento que continha a string “Western” no campo de conferência agora possui “West” no campo de conferência .

Qualquer documento que não tivesse a string “Western” no campo conferência simplesmente retinha sua string original.

Observação : você pode encontrar a documentação completa da função $replaceOne aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:

MongoDB: Como verificar se o campo contém uma string
MongoDB: Como adicionar um novo campo
MongoDB: Como excluir um campo

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *