substr (집계)
정의
$substr
버전 3.4부터 사용되지 않음:
$substr
는 이제$substrBytes
의 별칭입니다.지정된 인덱스 위치에서 시작하여 지정된 문자 수를 포함하는 문자열의 부분 문자열을 반환합니다. 인덱스는 0을 기준으로 합니다.
$substr
의 구문은 다음과 같습니다:{ $substr: [ <string>, <start>, <length> ] } 첫 번째 인수가 문자열로 해석되고 두 번째 및 세 번째 인수가 정수로 해석되는 한, 인수는 모든 유효한 표현식이 될 수 있습니다. 식에 대한 자세한 내용은 표현식 연산자를 참조하십시오.
행동
<start>
가 음수인 경우 $substr
은 빈 문자열 ""
을 반환합니다.
<length>
가 음수인 경우 $substr
은 지정된 인덱스에서 시작하여 나머지 문자열을 포함하는 하위 문자열을 반환합니다.
$substr
는 ASCII 문자의 문자열에 대해서만 잘 정의된 동작을 보유합니다.
예시
다음 문서가 포함된 inventory
컬렉션을 생각해 보세요.
{ "_id" : 1, "item" : "ABC1", quarter: "13Q1", "description" : "product 1" } { "_id" : 2, "item" : "ABC2", quarter: "13Q4", "description" : "product 2" } { "_id" : 3, "item" : "XYZ1", quarter: "14Q2", "description" : null }
다음 작업은 $substr
연산자를 사용하여 quarter
값을 yearSubstring
및 quarterSubstring
으로 분리합니다.
db.inventory.aggregate( [ { $project: { item: 1, yearSubstring: { $substr: [ "$quarter", 0, 2 ] }, quarterSubtring: { $substr: [ "$quarter", 2, -1 ] } } } ] )
이 연산은 다음과 같은 결과를 반환합니다.
{ "_id" : 1, "item" : "ABC1", "yearSubstring" : "13", "quarterSubtring" : "Q1" } { "_id" : 2, "item" : "ABC2", "yearSubstring" : "13", "quarterSubtring" : "Q4" } { "_id" : 3, "item" : "XYZ1", "yearSubstring" : "14", "quarterSubtring" : "Q2" }