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