Mongodb: як розділити рядок на масив підрядків


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

 db.myCollection.aggregate([
  { $project : { split_field: { $split : [ " $field1 ", " " ] } } },
  { $merge : "myCollection" }
])

У цьому конкретному прикладі рядок «field1» розбивається на основі пробілів у нове поле під назвою «split_field» і додає нове поле до колекції під назвою myCollection .

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

 db.teams.insertOne({name: " Dallas Mavs ", points: 31})
db.teams.insertOne({name: " San Antonio Spurs ", points: 22})
db.teams.insertOne({name: " Houston Rockets ", points: 19})
db.teams.insertOne({name: " Boston Celtics ", points: 26})
db.teams.insertOne({name: " Cleveland Cavs ", points: 33})

Приклад: розділіть рядок на масив підрядків у MongoDB

Ми можемо використати наступний код, щоб розділити рядок у стовпці «name» на масив рядків і відобразити результати в новому полі під назвою «split_name» у колекції teams :

 db.teams.aggregate([
  { $project : { split_name: { $split : [ " $name ", " " ] } } },
  { $merge : "teams" }
])

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

 { _id: ObjectId("62014a924cb04b772fd7a938"),
  name: 'Dallas Mavs',
  points: 31,
  split_name: ['Dallas', 'Mavs'] }
{ _id: ObjectId("62014a924cb04b772fd7a939"),
  name: 'San Antonio Spurs',
  points: 22,
  split_name: ['San', 'Antonio', 'Spurs'] }
{ _id: ObjectId("62014a924cb04b772fd7a93a"),
  name: 'Houston Rockets',
  points: 19,
  split_name: ['Houston', 'Rockets'] }
{ _id: ObjectId("62014a924cb04b772fd7a93b"),
  name: 'Boston Celtics',
  points: 26,
  split_name: ['Boston', 'Celtics'] }
{ _id: ObjectId("62014a924cb04b772fd7a93c"),
  name: 'Cleveland Cavs',
  points: 33,
  split_name: ['Cleveland', 'Cavs'] }

Зверніть увагу, що кожен документ має нове поле під назвою “split_name”, яке містить масив підрядків поля “name”.

Для цього конкретного прикладу ми вирішили розділити вихідний рядок, використовуючи пробіл як роздільник.

Якщо рядок розділено іншим роздільником (наприклад, дефісом, косою рискою, двокрапкою тощо), просто використовуйте цей роздільник у функції $split .

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

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

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

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

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

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