Docs Menu

Docs Home애플리케이션 개발Python 드라이버PyMongo

인덱스로 쿼리 최적화

이 페이지의 내용

  • 개요
  • 샘플 애플리케이션
  • 단일 필드 인덱스
  • 복합 인덱스
  • Multikey Index
  • Atlas Search 인덱스
  • Atlas Search 인덱스 만들기
  • 검색 인덱스 나열
  • 검색 인덱스 업데이트
  • Atlas Search 인덱스 삭제
  • Text Index
  • 지리 공간적 인덱스
  • 고유 인덱스
  • 와일드카드 인덱스
  • 클러스터된 인덱스
  • 인덱스 제거

이 페이지에서는 PyMongo와 함께 사용할 수 있는 일반적인 유형의 인덱스로 작업하는 방법을 보여주는 복사 가능한 코드 예제를 확인할 수 있습니다.

인덱스 작업에 대해 자세히 알아보려면 인덱스 작업 가이드를 참조하세요. 이 페이지에 표시된 인덱스에 대해 자세히 알아보려면 각 섹션에 제공된 링크를 참조하세요.

이 페이지의 예제를 사용하려면 코드 예제를 샘플 애플리케이션 또는 자체 애플리케이션에 복사합니다. 코드 예제의 모든 자리 표시자(예: <connection string URI>)를 MongoDB 배포에 필요한 관련 값으로 바꿔야 합니다.

다음 샘플 애플리케이션을 사용하여 이 페이지의 코드 예제를 테스트할 수 있습니다. 샘플 애플리케이션을 사용하려면 다음 단계를 수행하세요.

  1. PyMongo가 설치되어 있는지 확인합니다.

  2. 다음 코드를 복사하여 새 .py 파일에 붙여넣습니다.

  3. 이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.

1import pymongo
2from pymongo import MongoClient
3
4try:
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
17except 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}")

복합 인덱스에 대해 자세히 알아보려면 복합 인덱스 가이드를 참조하세요.

result = collection.create_index("<array field name>")
print(f'Index created: {result}')

멀티키 인덱스에 대해 자세히 알아보려면 멀티키 인덱스 가이드를 참조하세요.

Atlas 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 인덱스 업데이트 가이드를 참조하세요.

collection.drop_index("<index name>")
print(f"Search index deleted: {result}")

Atlas Search 인덱스 삭제에 대해 자세히 알아보려면 Atlas Search 인덱스 삭제 가이드를 참조하세요.

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>")

인덱스 제거에 대해 자세히 알아보려면 인덱스 작업 가이드에서 인덱스 제거 를 참조하세요.

← 커서에서 데이터 액세스