이 버전의 문서는 보관되어 더 이상 지원되지 않습니다. 5.0 배포서버 업그레이드 하려면 MongoDB 6.0 업그레이드 절차를 참조하세요.
정의
$strLenCP버전 3.4에 새로 추가되었습니다.
지정된 문자열에서 UTF-8 코드 포인트 의 수를 반환합니다.
$strLenCP에는 다음과 같은 연산자 표현식 구문이 있습니다.{ $strLenCP: <string expression> } 인수는 문자열로 해석되는 모든 유효한 표현식일 수 있습니다.
인수가
null값으로 해석되거나 누락된 필드를 참조하는 경우$strLenCP는 오류를 반환합니다.예시결과{ $strLenCP: "abcde" }5{ $strLenCP: "Hello World!" }12{ $strLenCP: "cafeteria" }9{ $strLenCP: "cafétéria" }9{ $strLenCP: "" }0{ $strLenCP: "$€λA" }4{ $strLenCP: "寿司" }2
행동
$strLenCP 연산자는 지정된 문자열의 코드 점의 개수를 계산합니다. 이 동작은 각 문자가 1~4바이트를 사용하는 문자열의 바이트 수를 계산하는 $strLenBytes 연산자와는 다릅니다.
예시
싱글바이트 및 멀티바이트 문자 세트
food collection을 만듭니다.
db.food.insertMany( [ { _id: 1, name: "apple" }, { _id: 2, name: "banana" }, { _id: 3, name: "éclair" }, { _id: 4, name: "hamburger" }, { _id: 5, name: "jalapeño" }, { _id: 6, name: "pizza" }, { _id: 7, name: "tacos" }, { _id: 8, name: "寿司" } ] )
다음 예에서는 $strLenCP 연산자를 사용하여 각 name 값의 length을 계산합니다.
db.food.aggregate( [ { $project: { name: 1, length: { $strLenCP: "$name" } } } ] )
출력 예시:
[ { _id: 1, name: 'apple', length: 5 }, { _id: 2, name: 'banana', length: 6 }, { _id: 3, name: 'éclair', length: 6 }, { _id: 4, name: 'hamburger', length: 9 }, { _id: 5, name: 'jalapeño', length: 8 }, { _id: 6, name: 'pizza', length: 5 }, { _id: 7, name: 'tacos', length: 5 }, { _id: 8, name: '寿司', length: 2 } ]