문서 메뉴

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

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 비교 수준 에 해당 . 가능한 값은 다음과 같습니다.

설명
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을 참조하세요. 를 참조하세요.

다음 예제에서는 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();

다음도 참조하세요.

← Bulk.find.arrayFilters()

이 페이지의 내용