Classificação: Mongo::SearchIndex::View

Herda:
Objeto
  • Objeto
mostrar tudo
Inclui:
Enumerable, Collection::Helpers, Retryable
Definido em:
lib/mongo/search_index/view.rb

Visão geral

Uma classe que representa uma visualização dos índices de pesquisa.

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Métodos incluídos da Collection::Helpers

#do_drop

Métodos incluídos no Retryable

#read_worker, #select_server, #write_worker

Detalhes do construtor

#inicializar(coleção, opções = {}) ➤ Visualizar

Crie a nova visualização do índice de pesquisa .

Parâmetros:

  • collection (Collection)

    A coleção.

  • opções (Hash) (padrão para: {})

    As opções que configuram o comportamento da visualização.

Hash de opções (opções):

  • :id (string)

    O ID do índice específico para query (opcional)

  • :name (string)

    O nome do índice específico para query (opcional)

  • :aggregate (Hash)

    O hash de opções a ser enviado ao comando agregado ao consultar os índices disponíveis.

Aumenta:

  • (ArgumentError)


33
34
35
36
37
38
39
40
41
42
# Arquivo 'lib/mongo/search_index/view.rb', linha 33

def inicializar(collection, opções = {})
  @collection = collection
  @requested_index_id = opções[:id]
  @requested_index_name = opções[:name]
  @aggregate_options = opções[:aggregate] || {}

  Método se @aggregate_options.is_a?(Hash)

  aumentar ArgumentError, "A opção :aggregate deve ser um Hash (obteve um #{@aggregate_options.classe})"
end

Detalhes do atributo da instância

#aggregate_optionsHash (somente leitura)

Retorna o hash de opções a ser usado para o comando agregado ao consultar os índices disponíveis.

Retorna:

  • (Hash)

    o hash de opções a ser usado para o comando agregado ao consultar os índices disponíveis.



22
23
24
# Arquivo 'lib/mongo/search_index/view.rb', linha 22

def aggregate_options
  @aggregate_options
end

#collectionMongo::Collection (readonly)

Retorna a coleção à qual esta visualização pertence.

Retorna:



12
13
14
# Arquivo 'lib/mongo/search_index/view.rb', linha 12

def collection
  @collection
end

#requires_index_idnil | string (somente leitura)

Retorna o ID do índice para query.

Retorna:

  • (nil | string)

    o ID do índice para query



15
16
17
# Arquivo 'lib/mongo/search_index/view.rb', linha 15

def ordered_index_id
  @requested_index_id
end

#requires_index_namenil | string (somente leitura)

Retorna o nome do índice para query.

Retorna:

  • (nil | string)

    o nome do índice para query



18
19
20
# Arquivo 'lib/mongo/search_index/view.rb', linha 18

def ordered_index_name
  @requested_index_name
end

Detalhes do método de instância

#create_many(indexes) ➤ Array<String>

Crie vários índices de pesquisa com um único comando.

Parâmetros:

  • Índices (Array<Hash>)

    A descrição dos índices a serem criados. Cada elemento da lista deve ser um hash com uma chave de definição e uma chave de nome opcional.

Retorna:

  • (Array<String>)

    os nomes dos novos índices de pesquisa.



62
63
64
65
66
# Arquivo 'lib/mongo/search_index/view.rb', linha 62

def create_many(Índices)
  especificações = spec_with(índices: Índices.map { |v| validate_search_index!(v) })
  Resultado = (operação)::Crie índices de pesquisa.Novo(especificações).executar, executar(próximo_primary, contexto: execution_context)
  Resultado.primeiro['indexesCreated '].map { |idx| idx['nome'] }
end

#create_one(definição, nome: nil, tipo: 'search') ➤ string

Crie um único índice de pesquisa com a definição fornecida. Se o nome for fornecido, o novo índice receberá esse nome.

Parâmetros:

  • Definição (Hash)

    A definição do índice de pesquisa.

  • name (nil | string) (padrão para: nil)

    O nome para dar ao novo índice de pesquisa.

Retorna:

  • (string)

    o nome do novo índice de pesquisa.



51
52
53
# Arquivo 'lib/mongo/search_index/view.rb', linha 51

def create_one(Definição, nome: nada, tipo: 'procurar ')
  create_many([ { nome: name, definição: Definição, tipo: type } ]).primeiro
end

#drop_one(ID: nil, nome: nil) ➤ Mongo::Operation::Result | false

Solte o índice de pesquisa com o ID ou nome fornecido. Um ou outro deve ser especificado, mas não ambos.

Parâmetros:

  • id (string) (padrão para: nil)

    o ID do índice a ser descartado

  • name (string) (padrão para: nil)

    o nome do índice a diminuir

Retorna:



76
77
78
79
80
81
82
83
84
85
86
# Arquivo 'lib/mongo/search_index/view.rb', linha 76

def drop_one(ID: nada, nome: nada)
  validate_id_or_name!(id, name)

  especificações = spec_with(index_id: id, index_name: name)
  op = (operação)::Índice de queda.Novo(especificações)

  # de acordo com a especificação:
  # Os drivers DEVEM suprimir os erros NamespaceNotFound para o
  # assistente``dropSearchIndex``.  As operações de queda devem ser idempotentes.
  do_drop(op, nada, execution_context)
end

#cada(&bloco) ⇒ auto | Enumerador

Iterar sobre os índices de pesquisa.

Parâmetros:

  • noum: bloco ; verb: bloquear (Proc)

    se fornecido, cada índice de pesquisa será cedido ao bloco.

Retorna:

  • (self | Enumerador)

    se um bloco for fornecido, self será retornado. Caso contrário, um enumerador será retornado.



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Arquivo 'lib/mongo/search_index/view.rb', linha 95

def cada(&noum: bloco ; verb: bloquear)
  @result ||= começar
    especificações = {}.toque fazer |s|
      s[:id] = ordered_index_id se ordered_index_id
      s[:name] = ordered_index_name se ordered_index_name
    end

    collection.com(read_concern: {}).Agregação(
      [ { '$listSearchIndexes' => especificações } ],
      aggregate_options
    )
  end

  Método @result.to_enum a menos que noum: bloco ; verb: bloquear

  @result.cada(&noum: bloco ; verb: bloquear)
  auto
end

#vazio?verdadeiro | false

Consulta se o índice de pesquisa enumerável está vazio.

Retorna:

  • (verdadeiro | falso)

    se o enumerável está vazio ou não.



136
137
138
# Arquivo 'lib/mongo/search_index/view.rb', linha 136

def vazio?
  contar.zero?
end

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

Atualize o índice de pesquisa com o ID ou nome fornecido. Um ou outro deve ser fornecido, mas não ambos.

Parâmetros:

  • Definição (Hash)

    a definição pela qual substituir o índice de pesquisa fornecido.

  • id (nil | string) (padrão para: nil)

    o ID do índice de pesquisa para atualizar

  • name (nil | string) (padrão para: nil)

    o nome do índice de pesquisa para atualizar

Retorna:



123
124
125
126
127
128
# Arquivo 'lib/mongo/search_index/view.rb', linha 123

def update_one(Definição, ID: nada, nome: nada)
  validate_id_or_name!(id, name)

  especificações = spec_with(index_id: id, index_name: name, Índice: Definição)
  (operação)::Atualizar índice de pesquisa.Novo(especificações).executar, executar(próximo_primary, contexto: execution_context)
end