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: 필드를 삭제하는 방법