인덱스로 쿼리 최적화
이 페이지의 내용
개요
이 페이지에서는 PyMongo와 함께 사용할 수 있는 일반적인 유형의 인덱스로 작업하는 방법을 보여주는 복사 가능한 코드 예제를 확인할 수 있습니다.
팁
인덱스 작업에 학습 보려면 인덱스 작업 가이드 를 참조하세요. 이 페이지에 표시된 인덱스에 학습 보려면 각 섹션에 제공된 링크를 참조하세요.
이 페이지의 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <connection string URI>
)를 MongoDB 배포에 필요한 관련 값으로 바꿔야 합니다.
샘플 애플리케이션
다음 샘플 애플리케이션을 사용하여 이 페이지의 코드 예제를 테스트할 수 있습니다. 샘플 애플리케이션을 사용하려면 다음 단계를 수행하세요.
PyMongo가 설치되어 있는지 확인합니다.
다음 코드를 복사하여 새
.py
파일에 붙여넣습니다.이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.
1 import pymongo 2 from pymongo import MongoClient 3 4 try: 5 uri = "<connection string URI>" 6 client = MongoClient(uri) 7 8 database = client["<database name>"] 9 collection = database["<collection name>"] 10 11 # start example code here 12 13 # end example code here 14 15 client.close() 16 17 except Exception as e: 18 raise Exception( 19 "The following error occurred: ", e)
단일 필드 인덱스
result = collection.create_index("<field name>") print(f'Index created: {result}')
단일 필드 인덱스에 대해 자세히 알아보려면 단일 필드 인덱스 가이드를 참조하세요.
복합 인덱스
result = collection.create_index([ ("<field name one>", pymongo.ASCENDING), ("<field name two>", pymongo.ASCENDING) ]) print(f"Index created: {result}")
복합 인덱스에 대해 자세히 알아보려면 복합 인덱스 가이드를 참조하세요.
Multikey Index
result = collection.create_index("<array field name>") print(f'Index created: {result}')
멀티키 인덱스에 대해 자세히 알아보려면 멀티키 인덱스 가이드를 참조하세요.
Atlas Search 인덱스
Atlas Search 인덱스에 학습 보려면 Atlas Search Atlas Search Atlas Search 및 Vector Search 인덱스 가이드 를 참조하세요.
Atlas Search 인덱스 만들기
index = { "definition": { "mappings": { "dynamic": True } }, "name": "<index name>", } collection.create_search_index(index)
serach 인덱스 생성에 대해 자세히 알아보려면 Atlas Search 인덱스 생성 가이드를 참조하세요.
검색 인덱스 나열
results = list(collection.list_search_indexes()) print('Existing search indexes:\n') for index in results: print(index)
Atlas Search 인덱스 나열에 대해 자세히 알아보려면 Atlas Search 인덱스 나열 가이드를 참조하세요.
검색 인덱스 업데이트
new_index = { "definition": { "mappings": { "dynamic": True } }, "name": "<index name>", } collection.update_search_index("<name of index to update>", new_index) print(f"Search index updated: {result}")
Atlas Search 인덱스 업데이트에 대해 자세히 알아보려면 Atlas Search 인덱스 업데이트 가이드를 참조하세요.
Atlas Search 인덱스 삭제
collection.drop_index("<index name>") print(f"Search index deleted: {result}")
Atlas Search 인덱스 삭제에 대해 자세히 알아보려면 Atlas Search 인덱스 삭제 가이드를 참조하세요.
Text Index
result = collection.create_index( [( "<field name>", "text")], default_language="english", weights={ "<field name>": 10 } ) print(f"Index created: {result}")
텍스트 인덱스에 대해 자세히 알아보려면 텍스트 인덱스 가이드를 참조하세요.
지리 공간적 인덱스
result = collection.create_index([("<GeoJSON object field>", "2dsphere")]) print(f'Index created: {result}')
지리 공간적 인덱스에 대해 자세히 알아보려면 지리 공간적 인덱스 가이드를 참조하세요.
고유 인덱스
result = collection.create_index("<field name>", unique=True) print(f"Index created: {result}")
고유 인덱스에 대해 자세히 알아보려면 고유 인덱스 가이드를 참조하세요.
와일드카드 인덱스
result = collection.create_index({"$**": pymongo.ASCENDING}) print(f'Index created: {result}')
와일드카드 인덱스에 대해 자세히 알아보려면 와일드 카드 인덱스 가이드를 참조하세요.
클러스터된 인덱스
collection = database.create_collection("<collection name>", clusteredIndex={ "key": {"_id": 1}, "unique": True })
와일드카드 인덱스에 대해 자세히 알아보려면 클러스터형 인덱스 가이드를 참조하세요.
인덱스 제거
collection.drop_index("<index_name>")
인덱스 제거에 대해 자세히 알아보려면 인덱스 작업 가이드에서 인덱스 제거 를 참조하세요.