Bulk.find.collation()
설명
Bulk.find.collation(<document>)
대량 쓰기에 대한 데이터 정렬 을 지정합니다.
Bulk.find()
메서드에 추가하여 찾기 작업에 대한 데이터 정렬 을 지정합니다.Bulk.find.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을 참조하세요.
예시
다음 예제에서는 collection의 작업 Bulk()
빌더를 myColl
초기화하고 찾기 필터에 대한 데이터 정렬을 지정합니다.
var bulk = db.myColl.initializeUnorderedBulkOp(); bulk.find( { category: "cafe" } ).collation({ locale: "fr", strength: 1 }).update( { $set: { status: "I", points: "0" } } ); bulk.execute();