Mongodb: $susbtr 함수를 사용하는 방법


MongoDB의 $substr 함수를 사용하여 문자열에서 하위 문자열을 추출할 수 있습니다.

이 함수는 다음 기본 구문을 사용합니다.

 db.myCollection.aggregate([
  { $project : {substring: { $substr : [ " $fullstring ", 0, 4 ] }}}
])

이 특정 예는 위치 0에서 시작하여 “fullString”이라는 필드에서 4개의 문자를 모두 추출합니다.

다음 예에서는 다음 문서를 사용하여 컬렉션 판매 에 실제로 이 구문을 사용하는 방법을 보여줍니다.

 db.sales.insertOne({yearMonth: 201702, amount: 40 })
db.sales.insertOne({yearMonth: 201802, amount: 32 })
db.sales.insertOne({yearMonth: 201806, amount: 19 })
db.sales.insertOne({yearMonth: 201910, amount: 29 })
db.sales.insertOne({yearMonth: 201907, amount: 35 })

예: MongoDB에서 $susbtr 함수를 사용하는 방법

다음 코드를 사용하여 “yearMonth” 필드에서 처음 4자를 추출하고 “year”라는 새 필드에 표시할 수 있습니다.

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}}
])

이 코드는 다음과 같은 결과를 생성합니다.

 { _id: ObjectId("620145544cb04b772fd7a929"), year: '2017' }
{ _id: ObjectId("620145544cb04b772fd7a92a"), year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92b"), year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92c"), year: '2019' }
{ _id: ObjectId("620145544cb04b772fd7a92d"), year: '2019' }

각 문서의 “monthYear” 필드의 처음 4개 문자는 “연도”라는 새 필드에 표시됩니다.

이 코드는 하위 문자열만 표시한다는 점에 유의하는 것이 중요합니다.

실제로 이 하위 문자열을 포함하는 컬렉션에 새 필드를 추가하려면 다음과 같이 $merge 함수를 사용해야 합니다.

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}},
  { $merge : "sales" }
])

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

 { _id: ObjectId("620145544cb04b772fd7a929"),
  yearMonth: 201702,
  amount: 40,
  year: '2017' }
{ _id: ObjectId("620145544cb04b772fd7a92a"),
  yearMonth: 201802,
  amount: 32,
  year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92b"),
  yearMonth: 201806,
  amount: 19,
  year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92c"),
  yearMonth: 201910,
  amount: 29,
  year: '2019' }
{ _id: ObjectId("620145544cb04b772fd7a92d"),
  yearMonth: 201907,
  amount: 35,
  year: '2019' }

컬렉션의 각 문서에 “year”라는 새 필드가 추가되었으며 “yearMonth” 필드의 처음 4자가 표시됩니다.

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

추가 리소스

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

MongoDB: 필드에 문자열이 포함되어 있는지 확인하는 방법
MongoDB: 두 필드의 문자열을 연결하는 방법
MongoDB: 문자열을 바꾸는 방법

의견을 추가하다

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