Docs Menu
Docs Home
/ / /
루비 드라이버

인덱스를 사용하여 쿼리 최적화

이 페이지에서는 MongoDB Ruby 드라이버 사용하여 다양한 유형의 인덱스를 관리 방법을 보여주는 복사 가능한 코드 예제를 볼 수 있습니다.

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

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

  1. 프로젝트 에 Ruby 운전자 설치되어 있는지 확인합니다. 자세한 학습 은 다운로드 및 설치 가이드 참조하세요.

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

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

require 'mongo'
# Replace the placeholders with your credentials
uri = "<connection string>"
# Sets the server_api field of the options object to Stable API version 1
options = { server_api: { version: "1" }}
# Creates a new client and connect to the server
client = Mongo::Client.new(uri, options)
database = client.use('<database name>')
collection = database[:<collection name>]
# Start example code here
# End example code here
client.close

다음 예시 에서는 지정된 필드 에 오름차순 인덱스 를 생성합니다.

collection.indexes.create_one({ <field name>: 1 })

단일 필드 인덱스에 학습 보려면 단일 필드 인덱스 가이드 를 참조하세요.

다음 예시 지정된 두 필드에 복합 인덱스 생성합니다.

collection.indexes.create_one({ <field name 1>: -1, <field name 2>: 1 })

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

다음 예시 에서는 지정된 배열 값 필드 에 멀티키 인덱스 를 생성합니다.

collection.indexes.create_one({ <field name>: 1 })

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

다음 예시 에서는 GeoJSON 객체를 포함하는 지정된 필드 에 2dsphere 인덱스 를 생성합니다.

collection.indexes.create_one({ <GeoJSON field name>: '2dsphere' })

지리 공간적 인덱스에 대해 자세히 알아보려면 지리 공간적 인덱스 가이드를 참조하세요.

다음 섹션에는 Atlas Search 인덱스를 관리 하는 방법을 설명하는 코드 예제가 포함되어 있습니다.

검색 인덱스에 대해 자세히 학습하려면 Atlas Search 및 Atlas Vector Search 인덱스 가이드를 참조하세요.

다음 예시 에서는 지정된 필드 에 Atlas Search 인덱스 를 생성합니다.

index_definition = {
mappings: {
dynamic: false,
fields: {
<field name>: { type: '<field type>' }
}
}
}
collection.search_indexes.create_one(index_definition, name: '<index name>')

다음 예시 에서는 지정된 컬렉션 의 Atlas Search 인덱스 목록을 출력합니다.

puts collection.search_indexes.collect(&:to_json)

다음 예시 에서는 지정된 새 인덱스 정의로 기존 Atlas Search 인덱스 를 업데이트합니다.

updated_definition = {
mappings: {
dynamic: false,
fields: { <updated field name>: { type: '<updated field type>' } }
}
}
collection.search_indexes.update_one(updated_definition, name: '<index name>')

다음 예시 에서는 지정된 이름의 Atlas Search 인덱스 를 삭제합니다.

collection.search_indexes.drop_one(name: '<index name>')

다음 예시 에서는 지정된 string 필드 에 텍스트 인덱스 를 생성합니다.

collection.indexes.create_one({ <field name>: 'text' })

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

다음 예시 에서는 지정된 인덱스 사양 배열 에 여러 인덱스를 생성합니다.

collection.indexes.create_many([
{ key: { <field name 1>: 1 } },
{ key: { <field name 2>: -1 } },
])

다음 예시 에서는 지정된 이름의 인덱스 를 삭제합니다.

collection.indexes.drop_one( '<index name>' )

다음 예시 컬렉션 의 모든 인덱스를 삭제 방법을 보여 줍니다.

collection.indexes.drop_all

다음 예시 에서는 지정된 컬렉션 의 모든 인덱스 목록을 출력합니다.

puts collection.indexes.collect(&:to_json)

다음은 인덱스를 생성할 때 추가할 수 있는 옵션의 전체 목록입니다. 이러한 옵션은 createIndex 명령에서 지원하는 옵션을 미러링합니다. 자세한 내용은 MongoDB Server 매뉴얼의 createIndex 명령 을 참조하세요.

옵션
설명

:background

true 또는 false 입니다. 인덱스가 백그라운드에서 생성되도록 지시합니다.

:expire_after

collection의 문서가 만료되는 데 걸리는 시간(초)입니다.

:name

인덱스의 이름입니다.

:sparse

인덱스를 희소(sparse)해야 하는지 여부( true 또는 false 입니다.

:storage_engine

이 특정 인덱스에 대한 storage engine의 이름입니다.

:version

사용할 인덱스 형식 버전입니다.

:default_language

텍스트 인덱스의 기본 언어입니다.

:language_override

기본 언어를 재정의할 때 사용할 필드 이름입니다.

:text_version

텍스트 인덱스 저장을 위한 버전 형식입니다.

:weights

텍스트 검색에서 필드와 가중치를 지정하는 문서입니다.

:sphere_version

2D 구 인덱스 버전입니다.

:bits

2D 인덱스에서 위도 및 경도의 최대 경계를 설정합니다.

:max

2D 인덱스에서 위도 및 경도의 최대 경계입니다.

:min

2D 인덱스에서 위도 및 경도의 최소 경계입니다.

:bucket_size

geo haystack 인덱스에서 위치 값을 그룹화할 단위 수입니다.

:partial_filter_expression

부분 인덱스에 대한 필터입니다.

:hidden

인덱스를 숨길지 여부를 지정하는 부울입니다. 숨겨진 인덱스는 collection에 존재하지만 쿼리 플래너에서 사용되지 않는 인덱스입니다.

:commit-quorum

프라이머리를 포함한 복제본 세트 의 데이터 보유 멤버 수를 지정하여 프라이머리 프라이머리 가 인덱스를 준비됨으로 표시하기 전에 인덱스 빌드를 성공적으로 완료해야 합니다. 잠재적인 값은 다음과 같습니다.

  • 0 부터 복제본 세트 멤버 수까지의 정수

  • “majority” 데이터 보유 노드의 과반수가 투표해야 함을 나타냅니다.

  • “votingMembers” 즉, 투표 데이터를 가진 모든 노드는 반드시 투표해야 합니다.

자세한 내용은 MongoDB Server 매뉴얼에서 commitQuorom 을 참조하세요.

이 가이드 에 사용된 메서드 또는 객체에 대해 자세히 학습 다음 API 설명서를 참조하세요.

돌아가기

시계열 데이터

이 페이지의 내용