Mongodb: 두 필드의 문자열을 연결하는 방법


다음 구문을 사용하여 두 필드의 문자열을 MongoDB의 새 필드에 연결할 수 있습니다.

 db.myCollection.aggregate([
  { $project : { newfield: { $concat : [ " $field1 ", " - ", " $field2 " ] } } },
  { $merge : "myCollection" }
])

이 특정 예에서는 문자열 “field1″과 “field2″를 “newfield”라는 새 필드에 연결하고 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에서 문자열 연결

다음 코드를 사용하여 “team” 필드와 “conference” 필드의 문자열을 “teamConf”라는 새 필드에 연결하고 이 필드를 컬렉션에 추가할 수 있습니다.

 db.teams.aggregate([
  { $project : { teamConf: { $concat : [ " $team ", " - ", " $conference " ] } } },
  { $merge : "teams" }
])

이제 업데이트된 컬렉션은 다음과 같습니다.

 { _id: ObjectId("62013d8c4cb04b772fd7a90c"),
  team: 'Mavs',
  conference: 'Western',
  points: 31,
  teamConf: 'Mavs - Western' }
{ _id: ObjectId("62013d8c4cb04b772fd7a90d"),
  team: 'Spurs',
  conference: 'Western',
  points: 22,
  teamConf: 'Spurs - Western' }
{ _id: ObjectId("62013d8c4cb04b772fd7a90e"),
  team: 'Rockets',
  conference: 'Western',
  points: 19,
  teamConf: 'Rockets - Western' }
{ _id: ObjectId("62013d8c4cb04b772fd7a90f"),
  team: 'Celtics',
  conference: 'Eastern',
  points: 26,
  teamConf: 'Celtics - Eastern' }
{ _id: ObjectId("62013d8c4cb04b772fd7a910"),
  team: 'Cavs',
  conference: 'Eastern',
  points: 33,
  teamConf: 'Cavs - Eastern' }
{ _id: ObjectId("62013d8c4cb04b772fd7a911"),
  team: 'Nets',
  conference: 'Eastern',
  points: 38,
  teamConf: 'Nets - Eastern' }

각 문서에는 “team” 필드와 “conference” 필드가 연결된 “teamConf”라는 새 필드가 있습니다.

이 특정 예에서는 하이픈을 구분 기호로 사용하여 두 문자열을 연결하기로 선택했습니다.

그러나 두 문자열 사이에 구분 기호 값 없이 두 문자열을 연결하도록 선택할 수도 있습니다.

다음 코드는 이를 수행하는 방법을 보여줍니다.

 db.teams.aggregate([
  { $project : { teamConf: { $concat : [ " $team ", " $conference " ] } } },
  { $merge : "teams" }
])

업데이트된 컬렉션은 다음과 같습니다.

 { _id: ObjectId("62013d8c4cb04b772fd7a90c"),
  team: 'Mavs',
  conference: 'Western',
  points: 31,
  teamConf: 'MavsWestern' }
{ _id: ObjectId("62013d8c4cb04b772fd7a90d"),
  team: 'Spurs',
  conference: 'Western',
  points: 22,
  teamConf: 'SpursWestern' }
{ _id: ObjectId("62013d8c4cb04b772fd7a90e"),
  team: 'Rockets',
  conference: 'Western',
  points: 19,
  teamConf: 'RocketWestern' }
{ _id: ObjectId("62013d8c4cb04b772fd7a90f"),
  team: 'Celtics',
  conference: 'Eastern',
  points: 26,
  teamConf: 'CelticsEastern' }
{ _id: ObjectId("62013d8c4cb04b772fd7a910"),
  team: 'Cavs',
  conference: 'Eastern',
  points: 33,
  teamConf: 'CavsEastern' }
{ _id: ObjectId("62013d8c4cb04b772fd7a911"),
  team: 'Nets',
  conference: 'Eastern',
  points: 38,
  teamConf: 'NetsEastern' }

“teamConf”라는 제목의 새 필드에는 “team”과 “conference” 필드 사이에 별도의 값이 없는 연결이 포함되어 있습니다.

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

추가 리소스

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

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

의견을 추가하다

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