Як замінити рядки в 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: як видалити поле