Як замінити рядки в mongodb (з прикладом)


Ви можете використовувати такий синтаксис, щоб замінити певний рядок у полі в MongoDB:

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

Цей конкретний приклад замінює рядок «old» на «new» у полі з назвою «fieldName» у колекції з назвою myCollection .

У наведеному нижче прикладі показано, як використовувати цей синтаксис на практиці з групою зборів із такими документами:

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

Приклад: заміна рядка в MongoDB

Ми можемо використати такий код, щоб замінити рядок «Western» на «West» у полі конференції :

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

Ось так зараз виглядає оновлена колекція:

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

Зауважте, що кожен документ, який містив рядок «Western» у полі конференції , тепер має «West» у полі конференції .

Будь-який документ, який не мав рядка «Western» у полі конференції , просто зберігав свій оригінальний рядок.

Примітка : Ви можете знайти повну документацію для функції $replaceOne тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в MongoDB:

MongoDB: як перевірити, чи поле містить рядок
MongoDB: Як додати нове поле
MongoDB: як видалити поле

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *