데이터 정렬을 사용하여 컬렉션 생성
데이터 정렬을 사용하면 문자열 비교를 위한 언어별 규칙(예: 대소문자 및 악센트 표기 규칙)을 지정할 수 있습니다.
절차
4
locale의 값을 선택합니다.
MongoDB 지원 언어에서 locale을 선택해야 합니다.
다른 모든 데이터 정렬 옵션 매개 변수는 선택 사항입니다. 필드에 대한 설명은 데이터 정렬에서 확인하세요.
제한 사항
매개변수 numericOrdering
이 true
로 설정된 경우 다음 제한 사항이 적용됩니다.
음수가 아닌 연속적인 정수 하위 문자열만 비교에서 고려됩니다.
numericOrdering
은 다음을 지원하지 않습니다.+
-
지수
숫자 또는 십진수(Nd) 범주의 유니코드 코드 포인트만 숫자로 처리됩니다.
숫자 길이가 254자를 초과하는 경우 초과 문자는 별도의 숫자로 처리됩니다.
예시
다음과 같은 문자열 번호와 십진수 값을 가진 컬렉션을 고해 보겠습니다.
[ { "n": "1" }, { "n": "2" }, { "n": "-2.1" }, { "n": "2.0" }, { "n": "2.20" }, { "n": "10"}, { "n": "20" }, { "n": "20.1" }, { "n": "-10" }, { "n": "3" } ]
다음 쿼리는 numericOrdering
매개변수가 포함된 데이터 정렬 문서를 사용합니다.
db.c.find( { }, { _id: 0 } ).sort( { n: 1 } ).collation( { locale: 'en_US', numericOrdering: true } )
Compass 에서 문서를 쿼리하는 방법에 대한 자세한 내용은 데이터 쿼리를 참조하세요.
이 연산은 다음과 같은 결과를 반환합니다.
[ { "n": "-2.1" }, { "n": "-10" }, { "n": "1" }, { "n": "2" }, { "n": "2.0" } { "n": "2.20" }, { "n": "3" }, { "n": "10" }, { "n": "20" }, {"n": "20.1" } ]
numericOrdering: true
문자열 값을 숫자 값인 것처럼 오름차순으로 정렬합니다.두 개의 음수 값
-2.1
및-10
은 지원되지 않는-
문자가 있기 때문에 예상된 정렬 순서로 정렬되지 않습니다.