Come sostituire le stringhe in mongodb (con esempio)


Puoi utilizzare la seguente sintassi per sostituire una stringa specifica in un campo in MongoDB:

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

Questo particolare esempio sostituisce la stringa “old” con “new” nel campo denominato “fieldName” all’interno della raccolta denominata myCollection .

L’esempio seguente mostra come utilizzare nella pratica questa sintassi con un team di recupero crediti con i seguenti documenti:

 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})

Esempio: sostituisci una stringa in MongoDB

Possiamo utilizzare il seguente codice per sostituire la stringa “Western” con “West” nel campo conference :

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

Ecco come appare ora la raccolta aggiornata:

 { _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 }

Tieni presente che ogni documento che conteneva la stringa “Ovest” nel campo conferenza ora ha “Ovest” nel campo conferenza .

Qualsiasi documento che non avesse la stringa “Occidentale” nel campo conferenza conservava semplicemente la stringa originale.

Nota : puoi trovare la documentazione completa per la funzione $replaceOne qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in MongoDB:

MongoDB: come verificare se il campo contiene una stringa
MongoDB: come aggiungere un nuovo campo
MongoDB: come eliminare un campo

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *