클래스: Mongo::SearchIndex::View

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
열거 가능, Collection::Helpers, 재시도 가능
다음에 정의됨:
lib/ Mongo/search_index/view.rb

개요

검색 인덱스의 뷰를 나타내는 클래스입니다.

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

Collection::Helpers에 포함된 메서드

#do_drop

Retryable에 포함된 메서드

#read_Worker, #select_server, #write_Worker

생성자 세부 정보

#initialize(컬렉션, options = {}) ⇒ 보기

새 검색 인덱스 뷰를 만듭니다.

매개변수:

  • 컬렉션 (컬렉션)

    컬렉션.

  • 옵션 (해시) (기본값: {})

    뷰의 동작을 구성하는 옵션입니다.

옵션 해시(options):

  • :id (string)

    쿼리 할 특정 인덱스 ID(선택 사항)

  • :name (string)

    쿼리 할 특정 인덱스 의 이름(선택 사항)

  • :aggregate (해시)

    사용 가능한 인덱스를 쿼리할 때 집계 명령으로 보낼 옵션 해시입니다.

다음을 발생시킵니다.

  • (ArgumentError)


33
34
35
36
37
38
39
40
41
42
# 파일 'lib/ Mongo/search_index/view.rb', 줄 33

def 초기화(컬렉션, 옵션 = {})
  @collection = 컬렉션
  @requested_index_id = 옵션[:id]
  @requested_index_name = 옵션[:name]
  @aggregate_options = 옵션[:aggregate] || {}

  반환 만약 @aggregate_options.is_a?(해시)

  올리다 ArgumentError, " :aggregate 옵션은 반드시 해시여야 합니다 (got a #{@aggregate_options.class})"
end

인스턴스 속성 세부 정보

#aggregate_options 해시(읽기 전용)

사용 가능한 인덱스를 쿼리할 때 집계 명령에 사용할 옵션 해시를 반환합니다.

반환합니다:

  • (해시)

    사용 가능한 인덱스를 쿼리할 때 집계 명령에 사용할 옵션 해시입니다.



22
23
24
# 파일 'lib/ Mongo/search_index/view.rb', 줄 22

def aggregate_options
  @aggregate_options
end

#컬렉션Mongo::Collection (읽기 전용)

이 뷰가 속한 컬렉션 반환합니다.

반환합니다:



12
13
14
# 파일 'lib/ Mongo/search_index/view.rb', 줄 12

def 컬렉션
  @collection
end

#requests_index_idnil | 문자열(읽기 전용)

쿼리 할 인덱스 ID를 반환합니다.

반환합니다:

  • (nil | string)

    쿼리 할 인덱스 ID



15
16
17
# 파일 'lib/ Mongo/search_index/view.rb', 줄 15

def requests_index_id
  @requested_index_id
end

#requests_index_namenil | 문자열(읽기 전용)

쿼리 할 인덱스 이름을 반환합니다.

반환합니다:

  • (nil | string)

    쿼리 할 인덱스 이름



18
19
20
# 파일 'lib/ Mongo/search_index/view.rb', 줄 18

def requests_index_name
  @requested_index_name
end

인스턴스 메서드 세부 정보

#create_many(인덱스)Array<String>

단일 명령으로 여러 개의 검색 인덱스를 생성합니다.

매개변수:

  • 인덱스 (Array<Hash>)

    생성할 인덱스에 대한 설명입니다. 목록의 각 요소는 정의 키와 선택적 이름 키가 있는 해시여야 합니다.

반환합니다:

  • (Array<String>)

    새 검색 인덱스의 이름입니다.



62
63
64
65
66
# 파일 'lib/ Mongo/search_index/view.rb', 줄 62

def create_many(인덱스)
  사양 = spec_with(인덱스: 인덱스.map { |v| validate_search_index!(v) })
  결과 = 작업::검색 인덱스 만들기.신규(사양).실행(Next_primary, 컨텍스트: execution_context)
  결과.first['indexesCreated '].map { |idx| idx['name'] }
end

#create_one(definition, 이름: nil, 유형: ' 검색') ⇒ 문자열

지정된 정의를 사용하여 단일 검색 인덱스 생성합니다. 이름이 제공되면 새 인덱스 해당 이름이 지정됩니다.

매개변수:

  • 정의 (해시)

    검색 인덱스 의 정의입니다.

  • 이름 (nil | 문자열) (기본값: nil)

    새 검색 인덱스 에 부여할 이름입니다.

반환합니다:

  • (string)

    새 검색 인덱스 의 이름입니다.



51
52
53
# 파일 'lib/ Mongo/search_index/view.rb', 줄 51

def create_one(정의, 이름: nil, 유형: '검색 ')
  create_many([ { 이름: 이름, 정의: 정의, 유형: 유형 } ]).first
end

#drop_one(ID: nil, 이름: nil) ⇒ Mongo::Operation::Result | false

지정된 ID 또는 이름으로 검색 인덱스 삭제합니다. 둘 중 하나를 지정해야 하지만 둘 다 지정할 수는 없습니다.

매개변수:

  • id (string) (기본값: nil)

    삭제할 인덱스 의 ID

  • 이름 (string) (기본값: nil)

    삭제할 인덱스 의 이름

반환합니다:

  • (Mongo::Operation::Result | false)

    연산 결과를 반환하고, 지정된 인덱스 존재하지 않으면 false를 반환합니다.



76
77
78
79
80
81
82
83
84
85
86
# 파일 'lib/ Mongo/search_index/view.rb', 줄 76

def drop_one(ID: nil, 이름: nil)
  validate_id_or_name!(id, 이름)

  사양 = spec_with(index_id: id, index_name: 이름)
  op = 작업::DropSearchIndex.신규(사양)

  # 사양에 따라:
  # 드라이버는 다음에 대한 NamespaceNotFound 오류를 억제해야 합니다.
  # ``dropSearchIndex`` 헬퍼.  삭제 작업은 멱등 있어야 합니다.
  do_drop(op, nil, execution_context)
end

#각각(&block) ⇒ self | 열거자

검색 인덱스를 반복합니다.

매개변수:

  • 차단 (Proc)

    지정된 경우 각 검색 인덱스 차단 에 반환됩니다.

반환합니다:

  • (self | Enumerator)

    차단 주어지면 self가 반환됩니다. 그렇지 않으면 열거자가 반환됩니다.



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# 파일 'lib/ Mongo/search_index/view.rb', 줄 95

def (&차단)
  @result ||= 시작
    사양 = {}. do |s|
      s[:id] = requests_index_id 만약 requests_index_id
      s[:name] = requests_index_name 만약 requests_index_name
    end

    컬렉션.(read_concern: {}).집계(
      [ { '$listSearchIndexes' => 사양 } ],
      aggregate_options
    )
  end

  반환 @result.to_enum 하지 않는 한 차단

  @result.(&차단)
  self
end

#비어 있나요?true | false

검색 인덱스 열거형이 비어 있는지 쿼리합니다.

반환합니다:

  • (true | false)

    열거형이 비어 있는지 여부.



136
137
138
# 파일 'lib/ Mongo/search_index/view.rb', 줄 136

def 비어 있나요?
  카운트.zero?
end

#update_one(definition, ID: nil, name: nil) ⇒ Mongo::Operation::Result

지정된 ID 또는 이름으로 검색 인덱스 업데이트합니다. 둘 중 하나를 제공해야 하지만 둘 다 제공할 수는 없습니다.

매개변수:

  • 정의 (해시)

    지정된 검색 인덱스 대체할 정의입니다.

  • id (nil | 문자열) (기본값: nil)

    업데이트 할 검색 인덱스 의 ID입니다.

  • 이름 (nil | 문자열) (기본값: nil)

    업데이트 할 검색 인덱스 의 이름

반환합니다:



123
124
125
126
127
128
# 파일 'lib/ Mongo/search_index/view.rb', 줄 123

def update_one(정의, ID: nil, 이름: nil)
  validate_id_or_name!(id, 이름)

  사양 = spec_with(index_id: id, index_name: 이름, index: 정의)
  작업::updateSearchIndex.신규(사양).실행(Next_primary, 컨텍스트: execution_context)
end