MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home

데이터 정렬.

데이터 정렬 은 스페인어나 독일어와 같은 특정 언어 의 규칙을 준수하는 문자열을 비교할 때 사용할 설정하다 의 규칙을 제공합니다. 데이터 정렬을 지정하지 않으면 서버 는 이진 비교를 기반으로 문자열을 정렬합니다. 그러나 많은 언어에 특정 순서 지정 규칙이 있으며, 사용자는 데이터 정렬을 통해 이러한 규칙을 준수하는 애플리케이션을 빌드 할 수 있습니다.

예를 예시 프랑스어에서는 특정 단어의 마지막 악센트에 따라 정렬 순서가 결정됩니다. 다음 예시 는 프랑스어 단어 4개의 올바른 정렬 순서를 보여줍니다.

cote < côte < coté < côté

프랑스어 데이터 정렬을 지정하면 사용자가 프랑스어 정렬 순서를 사용하여 string 필드를 정렬할 수 있습니다.

컬렉션, 인덱스 또는 CRUD 명령에 대한 데이터 정렬을 지정할 수 있습니다.

~pymongo.collation.Collation 모델 또는 Python 사전을 사용하여 데이터 정렬을 지정할 수 있습니다. 두 경우 모두 구조는 동일합니다.

Collation(locale=<string>,
caseLevel=<bool>,
caseFirst=<string>,
strength=<int>,
numericOrdering=<bool>,
alternate=<string>,
maxVariable=<string>,
backwards=<bool>)

유일한 필수 매개 변수는 서버 가 ICU 형식의 국가 및 국가 및 언어 설정 설정 ID 로 구문 분석하는 locale 입니다. 예를 예시 localeen_US 로 설정하다 하여 미국 영어를 나타내거나 fr_CA 를 캐나다 프랑스어를 나타내도록 설정합니다.

다음 예시 에서는 contacts 이라는 새 컬렉션 을 만들고 fr_CA 국가 및 국가 및 언어 설정 설정을 사용하여 기본값 데이터 정렬을 할당하는 방법을 보여 줍니다. 이 작업은 다른 데이터 정렬이 명시적으로 지정되지 않는 한 contacts 컬렉션 에 대해 실행 되는 모든 쿼리가 fr_CA 데이터 정렬을 사용하도록 합니다.

from pymongo import MongoClient
from pymongo.collation import Collation
db = MongoClient().test
collection = db.create_collection('contacts',
collation=Collation(locale='fr_CA'))

새 인덱스를 만들 때 기본 데이터 정렬을 지정할 수 있습니다.

다음 예시 에서는 unique 매개 변수를 활성화하고 locale 을(를) fr_CA 으)로 설정하다 한 기본값 데이터 정렬을 사용하여 contacts 컬렉션 의 name 필드 에 인덱스 를 만드는 방법을 보여 줍니다.

from pymongo import MongoClient
from pymongo.collation import Collation
contacts = MongoClient().test.contacts
contacts.create_index('name',
unique=True,
collation=Collation(locale='fr_CA'))

쿼리 는 결과를 정렬할 때 사용할 데이터 정렬을 지정할 수 있습니다. 다음 예시 에서는 test 데이터베이스 의 contacts 컬렉션 에서 실행되는 쿼리 를 보여 줍니다. city 필드 에 New York 가 포함된 문서를 일치시키고 fr_CA 데이터 정렬을 사용하여 name 필드 를 정렬합니다.

from pymongo import MongoClient
from pymongo.collation import Collation
collection = MongoClient().test.contacts
docs = collection.find({'city': 'New York'}).sort('name').collation(
Collation(locale='fr_CA'))

데이터 정렬을 사용하여 여러 유형의 쿼리에 대한 문서 일치 규칙을 제어할 수 있습니다. 업데이트 또는 삭제 작업을 수행하는 모든 메서드는 데이터 정렬을 지원 하며, locale 매개변수에 사용할 수 있는 언어 및 변형을 준수하기 위해 데이터 정렬을 사용하는 쿼리 필터를 만들 수 있습니다.

다음 예시 에서는 strength~pymongo.collation.CollationStrength.SECONDARY로 설정하다 데이터 정렬을 사용하며, string 비교에서 기본 문자와 문자 악센트만 고려하고 대소문자 구분은 고려하지 않습니다( 예시: ). first_name 필드 에서 jürgen (대소문자 구분 없음)이 있는 contacts 컬렉션 의 모든 문서가 업데이트됩니다.

from pymongo import MongoClient
from pymongo.collation import Collation, CollationStrength
contacts = MongoClient().test.contacts
result = contacts.update_many(
{'first_name': 'jürgen'},
{'$set': {'verified': 1}},
collation=Collation(locale='de',
strength=CollationStrength.SECONDARY))

이 페이지의 내용