문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

cursor.collation()

이 페이지의 내용

  • 정의
  • 예제
cursor.collation(<collation document>)

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다 .

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

에서 반환한 커서의 데이터 db.collection.find() 정렬 을 지정합니다. 사용하려면 db.collection.find() 에 추가하세요.

cursor.collation() 는 다음 데이터 정렬 문서를 허용합니다.

{
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

데이터 정렬을 지정할 때 locale 필드는 필수이고, 다른 데이터 정렬 필드는 모두 선택 사항입니다. 필드에 대한 설명은 데이터 정렬 문서를 참조하세요.

필드
유형
설명
locale
문자열

ICU 로케일. 지원되는 로케일 목록은 지원되는 언어 및 로케일을 참조하십시오.

단순 이진 비교를 지정하려면 "simple"locale 값을 지정합니다.

strength
integer

선택 사항. 수행할 비교 수준입니다. ICU 비교 수준 에 해당 . 가능한 값은 다음과 같습니다.

설명
1
1차 비교 수준. 데이터 정렬은 분음 부호 및 대소문자와 같은 다른 차이점을 무시하고 기본 문자만 비교합니다.
2
세컨더리 비교 수준. 데이터 정렬은 분음 부호와 같은 이차적인 차이까지 비교를 수행합니다. 즉, 데이터 정렬은 기본 문자(1차 차이)와 분음 부호(2차 차이)의 비교를 수행합니다. 기본 문자 간의 차이는 분음 부호 간의 차이보다 우선합니다.
3

3차 비교 수준. 대조는 대소문자 및 문자 변형과 같은 3차 차이까지 비교를 수행합니다. 즉, 데이터 정렬은 프라이머리 문자 (주요 차이점), 분음 부호 (2차 차이), 대소문자 및 변형 (3차 차이) 을 비교합니다. 기본 문자 간의 차이는 2차 차이보다 우선하며, 2차 차이는 3차 차이보다 우선합니다.

이것이 기본 수준입니다.

4
4차 수준. 1-3차 수준에서 구두점을 무시하거나 일본어 텍스트를 처리하는 경우 구두점을 고려하도록 특정 사용 사례로 제한됩니다.
5
동일한 수준. 타이 브레이커 (tie breaker)의 특정 사용 사례에는 제한이 있습니다.

ICU 데이터 정렬: 비교 수준을 참조하세요. 를 참조하세요.

caseLevel
부울

선택 사항입니다. strength 수준 1 또는 2에서 대/소문자 비교를 포함할지 여부를 결정하는 플래그입니다.

true 인 경우 대소문자 비교를 포함합니다. 즉

  • strength:1와 함께 사용하면 데이터 정렬은 기본 문자와 대/소문자를 비교합니다.

  • strength:2와 함께 사용하면 데이터 정렬은 기본 문자, 분음 부호(및 기타 가능한 2차 차이) 및 대/소문자를 비교합니다.

false인 경우 1 또는 2 수준에서 대소문자 비교를 포함하지 마세요. 기본값은 false입니다.

자세한 내용은 ICU 데이터 정렬: 사례 수준 을 참조하세요. .

caseFirst
문자열

선택 사항. 3차 수준 비교 시 대소문자 차이의 정렬 순서를 결정하는 필드입니다.

가능한 값은 다음과 같습니다.

설명
"upper"
대문자가 소문자보다 먼저 정렬됩니다.
"lower"
소문자가 대문자보다 먼저 정렬됩니다.
"떨어져서"
기본값입니다. 와(과) 비슷하지만 "lower" 약간의 차이가 있습니다.https://unicode-org.github.io/icu/userguide/strings/properties.html#customization을 참조하세요. 를 참조하세요.
numericOrdering
부울

선택 사항. 숫자 문자열을 숫자로 비교할지, 아니면 문자열로 비교할지를 결정하는 플래그입니다.

true 인 경우 숫자로 비교합니다. 즉, "10""2" 보다 큽니다.

false 인 경우 문자열로 비교합니다. 즉, "10""2" 보다 작습니다.

기본값은 false입니다.

alternate
문자열

선택 사항. 비교를 위해 데이터 정렬에서 공백과 문장 부호를 기본 문자로 고려할지 여부를 결정하는 필드입니다.

가능한 값은 다음과 같습니다.

설명
"non-ignorable"
공백과 문장 부호는 기본 문자로 간주됩니다.
"shifted"
공백과 구두점은 기본 문자로 간주되지 않으며 강도 수준이 3보다 큰 경우에만 구별됩니다.

ICU 데이터 정렬: 비교 수준을 참조하세요. 을(를) 참조하세요.

기본값은 "non-ignorable"입니다.

maxVariable
문자열

선택 사항. alternate: "shifted"일 때 무시할 수 있는 문자로 간주되는 문자를 결정하는 필드입니다. alternate: "non-ignorable"인 경우 영향을 미치지 않습니다.

가능한 값은 다음과 같습니다.

설명
"punct"
공백과 구두점은 모두 "무시할 수 있습니다", 즉 기본 문자로 간주되지 않습니다.
"space"
공백은 "무시할 수 있는" 문자로, 기본 문자로 간주되지 않습니다.
backwards
부울

선택 사항. 일부 프랑스어 사전 순서와 같이 분음 부호가 있는 문자열을 문자열 뒤쪽부터 정렬할지 여부를 결정하는 플래그입니다.

true이면 뒤쪽에서 앞쪽으로 비교합니다.

false이면 앞쪽에서 뒤쪽으로 비교합니다.

기본값은 false입니다.

normalization
부울

선택 사항. 텍스트에 정규화가 필요한지 확인하고 정규화를 수행할지 여부를 결정하는 플래그입니다. 일반적으로 대부분의 텍스트에는 이러한 정규화 처리가 필요하지 않습니다.

true인 경우 완전히 정규화되었는지 확인하고 정규화를 수행하여 텍스트를 비교합니다.

false이면 확인하지 않습니다.

기본값은 false입니다.

https://unicode-org.github.io/icu/userguide/collation/concepts.html#Normalization을 참조하세요. 를 참조하세요.

다음 문서가 포함된 foo 컬렉션을 생각해 보세요.

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "á" }

다음 작업은 x: "a" 의 쿼리 필터를 지정합니다. 이 연산에는 locale: "en_US" (미국 영어 국가 및 언어 설정) 및 strength: 1 (기본 문자만 비교, 대소문자 및 발음 구별 부호 무시)이(가) 있는 데이터 정렬 옵션도 포함되어 있습니다.

db.foo.find( { x: "a" } ).collation( { locale: "en_US", strength: 1 } )

이 작업은 다음 문서를 반환합니다.

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "á" }

데이터 정렬(예: db.collection.find( { x: "a" } ))을 지정하지 않으면 쿼리는 다음 문서와만 일치합니다.

db.foo.find( { x: "a" } )

cursor.sort()cursor.count() 와 같은 다른 커서 메서드를 cursor.collation() 에 연결할 수 있습니다.

db.collection.find({...}).collation({...}).sort({...});
db.collection.find({...}).collation({...}).count();

참고

한 연산에 대해 여러 데이터 정렬을 지정할 수 없습니다. 예를 들어 필드별로 서로 다른 데이터 정렬을 지정할 수 없으며 정렬과 함께 찾기를 수행하는 경우 찾기 와 정렬에서 각각 다른 데이터 정렬을 사용하는 것은 허용되지 않습니다.

← cursor.isClosed()

이 페이지의 내용