Как заменить строки в 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 } 

Обратите внимание, что каждый документ, в котором в поле конференции была строка «Западная», теперь содержит «Западная» в поле конференции .

Любой документ, в котором не было строки «Западная» в поле конференции, просто сохранял исходную строку.

Примечание.Полную документацию по функции $replaceOne можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:

MongoDB: как проверить, содержит ли поле строку
MongoDB: как добавить новое поле
MongoDB: как удалить поле

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.