정의
$substr버전 3.4부터 더 이상 사용되지 않습니다:
$substr는 이제$substrBytes의 별칭입니다.지정된 인덱스 위치에서 시작하여 지정된 문자 수를 포함하는 문자열의 부분 문자열을 반환합니다. 인덱스는 0을 기준으로 합니다.
$substr의 구문은 다음과 같습니다:{ $substr: [ <string>, <start>, <length> ] } 첫 번째 인수가 문자열로 해석되고 두 번째 및 세 번째 인수가 정수로 해석되는 한, 인수는 모든 유효한 표현식 이 될 수 있습니다. 표현식에 대한 자세한 내용은 표현식을 참조하세요 .
행동
<start>가 음수인 경우 $substr은 빈 문자열 ""을 반환합니다.
<length>가 음수인 경우 $substr은 지정된 인덱스에서 시작하여 나머지 문자열을 포함하는 하위 문자열을 반환합니다.
$substr 는 ASCII 문자의 문자열에 대해서만 잘 정의된 동작을 보유합니다.
예시
다음 예시에서는 sample_mflix 샘플 데이터 집합의 movies 컬렉션을 사용합니다. 배포서버에 이 데이터세트를 로드하는 방법은 샘플 데이터세트 로드를 참조하세요.
이 집계 작업은 $substr 연산자 사용하여 title 값을 titleStart와 titleRest로 분리합니다. 두 번째 표현식 음수 <length>를 사용하여 인덱스 3부터 문자열 끝까지의 문자를 반환합니다.
db.movies.aggregate( [ { $match: { runtime: { $gt: 1000 } } }, { $project: { _id: 0, title: 1, titleStart: { $substr: [ "$title", 0, 3 ] }, titleRest: { $substr: [ "$title", 3, -1 ] } } } ] )
[ { title: 'Centennial', titleStart: 'Cen', titleRest: 'tennial' }, { title: 'Baseball', titleStart: 'Bas', titleRest: 'eball' } ]