문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

$strLenBytes (애그리게이션)

이 페이지의 내용

  • 정의
  • 행동
  • 예제
$strLenBytes

지정된 문자열에 있는 UTF-8로 인코딩된 바이트 수를 반환합니다.

$strLenBytes 에는 다음과 같은 연산자 표현식 구문이 있습니다.

{ $strLenBytes: <string expression> }

인수는 문자열로 해석되는 한 유효한 표현식 일 수 있습니다. 표현식에 대한 자세한 내용은 표현식 연산자를 참조하세요.

인수가 null 값으로 해석되거나 누락된 필드를 참조하는 경우 $strLenBytes는 오류를 반환합니다.

$strLenBytes 연산자는 각 문자가 1~4바이트를 사용할 수 있는 string 에서 UTF-8 로 인코딩된 바이트 수를 계산합니다.

예를 들어, US-ASCII 문자는 1바이트를 사용하여 인코딩됩니다. 발음 부호 표시 및 추가 라틴 알파벳 문자가 있는 문자(예: 영어 알파벳 이외의 라틴 문자)는 2바이트를 사용하여 인코딩됩니다. 중국어, 일본어 및 한국어 문자에는 일반적으로 3바이트가 필요하고, 다른 유니코드 플레인(이모티콘, 수학 기호 등)에는 4바이트가 필요합니다.

$strLenBytes 연산자는 코드 $strLenCP 포인트 를 계산하는 연산자와 string 다릅니다. 각 문자가 사용하는 바이트 수에 관계없이 지정된 에서

예제
결과
참고 사항
{ $strLenBytes: "abcde" }
5
각 문자는 1바이트를 사용하여 인코딩됩니다.
{ $strLenBytes: "Hello World!" }
12
각 문자는 1바이트를 사용하여 인코딩됩니다.
{ $strLenBytes: "cafeteria" }
9
각 문자는 1바이트를 사용하여 인코딩됩니다.
{ $strLenBytes: "cafétéria" }
11
é 은(는) 2바이트를 사용하여 인코딩됩니다.
{ $strLenBytes: "" }
0
빈 문자열은 0을 반환합니다.
{ $strLenBytes: "$€λG" }
7
은 3바이트를 사용하여 인코딩됩니다. λ 은(는) 2바이트를 사용하여 인코딩됩니다.
{ $strLenBytes: "寿司" }
6
각 문자는 3바이트를 사용하여 인코딩됩니다.

다음 문서로 food 컬렉션을 생성합니다.

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" : "寿司" }
]
)

다음 연산은 $strLenBytes 연산자를 사용하여 각 name 값의 length 를 계산합니다.

db.food.aggregate(
[
{
$project: {
"name": 1,
"length": { $strLenBytes: "$name" }
}
}
]
)

이 연산은 다음과 같은 결과를 반환합니다.

{ "_id" : 1, "name" : "apple", "length" : 5 }
{ "_id" : 2, "name" : "banana", "length" : 6 }
{ "_id" : 3, "name" : "éclair", "length" : 7 }
{ "_id" : 4, "name" : "hamburger", "length" : 9 }
{ "_id" : 5, "name" : "jalapeño", "length" : 9 }
{ "_id" : 6, "name" : "pizza", "length" : 5 }
{ "_id" : 7, "name" : "tacos", "length" : 5 }
{ "_id" : 8, "name" : "寿司", "length" : 6 }

_id: 3_id: 5 이 있는 문서에는 각각 인코딩하는 데 2바이트가 필요한 분음 부호 문자(각각 éñ )가 포함되어 있습니다. _id: 8 가 있는 문서에 각각 3바이트를 사용하여 인코딩된 두 개의 일본어 문자가 포함되어 있습니다. 이렇게 하면 _id: 3, _id: 5_id: 8 가 있는 문서의 lengthname 의 문자 수보다 커집니다.

다음도 참조하세요.

← strcasecmp(집계)

이 페이지의 내용