Tekenreeksen vervangen in mongodb (met voorbeeld)


U kunt de volgende syntaxis gebruiken om een specifieke tekenreeks in een veld in MongoDB te vervangen:

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

In dit specifieke voorbeeld wordt de tekenreeks „oud“ vervangen door „nieuw“ in het veld met de naam „fieldName“ binnen de verzameling met de naam myCollection .

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken met een incassoteam met de volgende documenten:

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

Voorbeeld: vervang een tekenreeks in MongoDB

We kunnen de volgende code gebruiken om de string „Western“ te vervangen door „West“ in het conferentieveld :

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

Zo ziet de bijgewerkte collectie er nu uit:

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

Merk op dat elk document dat de string „Western“ in het conferentieveld bevatte, nu „West“ in het conferentieveld heeft.

Elk document dat niet de string „Western“ in het conferentieveld had, behield eenvoudigweg de oorspronkelijke string.

Opmerking : u kunt hier de volledige documentatie voor de functie $replaceOne vinden.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in MongoDB kunt uitvoeren:

MongoDB: Hoe u kunt controleren of een veld een string bevat
MongoDB: Hoe een nieuw veld toe te voegen
MongoDB: Hoe een veld te verwijderen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert