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”이라는 새 필드에 결과를 표시할 수 있습니다.

 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'] }

각 문서에는 “name” 필드의 하위 문자열 배열을 포함하는 “split_name”이라는 새 필드가 있습니다.

이 특정 예에서는 공백을 구분 기호로 사용하여 원래 문자열을 분할하기로 선택했습니다.

문자열이 다른 구분 기호(예: 하이픈, 슬래시, 콜론 등)로 구분된 경우 $split 함수에서 해당 구분 기호를 사용하세요.

참고 : $split 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 MongoDB에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

MongoDB: 필드에 문자열이 포함되어 있는지 확인하는 방법
MongoDB: 새 필드를 추가하는 방법
MongoDB: 필드를 삭제하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다