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 비교 수준에 해당합니다. 가능한 값은 다음과 같습니다.
값설명11차 비교 수준. 데이터 정렬은 분음 부호 및 대소문자와 같은 다른 차이점을 무시하고 기본 문자만 비교합니다.2세컨더리 비교 수준. 데이터 정렬은 분음 부호와 같은 이차적인 차이까지 비교를 수행합니다. 즉, 데이터 정렬은 기본 문자(1차 차이)와 분음 부호(2차 차이)의 비교를 수행합니다. 기본 문자 간의 차이는 분음 부호 간의 차이보다 우선합니다.33차 비교 수준. 대조는 대소문자 및 문자 변형과 같은 3차 차이까지 비교를 수행합니다. 즉, 데이터 정렬은 프라이머리 문자 (주요 차이점), 분음 부호 (2차 차이), 대소문자 및 변형 (3차 차이) 을 비교합니다. 기본 문자 간의 차이는 2차 차이보다 우선하며, 2차 차이는 3차 차이보다 우선합니다.
이것이 기본 수준입니다.
44차 수준. 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"소문자가 대문자보다 먼저 정렬됩니다."OFF"기본값입니다."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을 참조하세요.
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
예시
다음 문서가 포함된 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();
참고
한 연산에 대해 여러 데이터 정렬을 지정할 수 없습니다. 예를 들어 필드별로 서로 다른 데이터 정렬을 지정할 수 없으며 정렬과 함께 찾기를 수행하는 경우 찾기 와 정렬에서 각각 다른 데이터 정렬을 사용하는 것은 허용되지 않습니다.