데이터 정렬을 사용하여 컬렉션 생성
데이터 정렬을 사용하면 문자열 비교를 위한 언어별 규칙(예: 대소문자 및 악센트 표기 규칙)을 지정할 수 있습니다.
제한 사항
매개변수 numericOrdering
이 true
로 설정된 경우 다음 제한 사항이 적용됩니다.
음수가 아닌 연속적인 정수 하위 문자열만 비교에서 고려됩니다.
numericOrdering
은 다음을 지원하지 않습니다.+
-
지수
숫자 또는 십진수(Nd) 범주의 유니코드 코드 포인트만 숫자로 처리됩니다.
숫자 길이가 254자를 초과하는 경우 초과 문자는 별도의 숫자로 처리됩니다.
절차
4
locale의 값을 선택합니다.
MongoDB 지원 언어에서 locale을 선택해야 합니다.
다른 모든 데이터 정렬 옵션 매개 변수는 선택 사항입니다. 필드에 대한 설명은 데이터 정렬에서 확인하세요.
예시
다음과 같은 문자열 번호와 십진수 값을 가진 컬렉션을 고해 보겠습니다.
[ { "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
은 지원되지 않는-
문자가 있기 때문에 예상된 정렬 순서로 정렬되지 않습니다.