개요
이 페이지에서는 MongoDB Ruby 드라이버 사용하여 다양한 유형의 인덱스를 관리 방법을 보여주는 복사 가능한 코드 예제를 볼 수 있습니다.
이 페이지의 예시 사용하려면 코드 예시 샘플 애플리케이션 또는 자체 애플리케이션 에 복사합니다. 코드 예시의 모든 자리 표시자(예: <connection string>
)를 MongoDB deployment 에 필요한 관련 값으로 바꿔야 합니다.
샘플 애플리케이션
다음 샘플 애플리케이션 사용하여 이 페이지의 코드를 테스트할 수 있습니다. 샘플 애플리케이션 사용하려면 다음 단계를 수행하세요.
프로젝트 에 Ruby 운전자 설치되어 있는지 확인합니다. 자세한 학습 은 다운로드 및 설치 가이드 참조하세요.
다음 코드를 복사하여 새
.rb
파일에 붙여넣습니다.이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.
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 })
복합 인덱스에 대해 자세히 알아보려면 복합 인덱스 가이드를 참조하세요.
Multikey Index
다음 예시 에서는 지정된 배열 값 필드 에 멀티키 인덱스 를 생성합니다.
collection.indexes.create_one({ <field name>: 1 })
멀티키 인덱스에 대해 자세히 알아보려면 멀티키 인덱스 가이드를 참조하세요.
지리 공간적 인덱스
다음 예시 에서는 GeoJSON 객체를 포함하는 지정된 필드 에 2dsphere 인덱스 를 생성합니다.
collection.indexes.create_one({ <GeoJSON field name>: '2dsphere' })
지리 공간적 인덱스에 대해 자세히 알아보려면 지리 공간적 인덱스 가이드를 참조하세요.
Atlas 검색 인덱스 관리
다음 섹션에는 Atlas Search 인덱스를 관리 하는 방법을 설명하는 코드 예제가 포함되어 있습니다.
검색 인덱스에 대해 자세히 학습 Atlas Search 인덱스 가이드 참조하세요.
Atlas 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 인덱스 삭제
다음 예시 에서는 지정된 이름의 Atlas Search 인덱스 를 삭제합니다.
collection.search_indexes.drop_one(name: '<index name>')
Text Index
다음 예시 에서는 지정된 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 명령을 참조하세요.
옵션 | 설명 |
---|---|
|
|
| collection의 문서가 만료되는 데 걸리는 시간(초)입니다. |
| 인덱스의 이름입니다. |
| 인덱스를 희소(sparse)해야 하는지 여부( |
| 이 특정 인덱스에 대한 storage engine의 이름입니다. |
| 사용할 인덱스 형식 버전입니다. |
| 텍스트 인덱스의 기본 언어입니다. |
| 기본 언어를 재정의할 때 사용할 필드 이름입니다. |
| 텍스트 인덱스 저장을 위한 버전 형식입니다. |
| 텍스트 검색에서 필드와 가중치를 지정하는 문서입니다. |
| 2D 구 인덱스 버전입니다. |
| 2D 인덱스에서 위도 및 경도의 최대 경계를 설정합니다. |
| 2D 인덱스에서 위도 및 경도의 최대 경계입니다. |
| 2D 인덱스에서 위도 및 경도의 최소 경계입니다. |
| geo haystack 인덱스에서 위치 값을 그룹화할 단위 수입니다. |
| 부분 인덱스에 대한 필터입니다. |
| 인덱스를 숨길지 여부를 지정하는 부울입니다. 숨겨진 인덱스는 collection에 존재하지만 쿼리 플래너에서 사용되지 않는 인덱스입니다. |
| 프라이머리를 포함한 복제본 세트 의 데이터 보유 멤버 수를 지정하여 프라이머리 프라이머리 가 인덱스를 준비됨으로 표시하기 전에 인덱스 빌드를 성공적으로 완료해야 합니다. 잠재적인 값은 다음과 같습니다.
자세한 내용은 MongoDB Server 매뉴얼의 commitQuorom을 참조하세요. |
API 문서
이 가이드 에 사용된 메서드 또는 객체에 대해 자세히 학습 다음 API 설명서를 참조하세요.