Clase: Mongo::SearchIndex::View

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Enumerable, colección::asistentes, Retryable
Definido en:
lib/mongo/index_de_búsqueda/view.rb

Overview

Una clase que representa una vista de índices de búsqueda.

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Métodos incluidos en Collection::Helpers

#do_drop

Métodos incluidos en Retryable

#trabajador_de_lectura, #servidor_de_selección, #trabajador_de_escritura

Detalles del constructor

#inicializar(colección, opciones = {}) ⇒ Ver

Crear la nueva vista de índice de búsqueda.

Parámetros:

  • Colección (Recopilación) -

    La colección.

  • opciones (Hash) (predeterminado: {})

    Las opciones que configuran el comportamiento de la vista.

Opciones Hash(opciones):

  • :id (Cadena)

    El ID de índice específico a consultar (opcional)

  • :nombre (Cadena)

    El nombre del índice específico a consultar (opcional)

  • :aggregate (Hash)

    El hash de opciones que se enviará al comando agregado al consultar los índices disponibles.

Aumentos:

  • (ArgumentError)


33
34
35
36
37
38
39
40
41
42
# Archivo 'lib/mongo/search_index/view.rb', línea 33

def inicializar(Colección, opciones = {})
  @recopilación = Colección
  @id_de_índice_solicitado = opciones[:id]
  @nombre_índice_solicitado = opciones[:nombre]
  @opciones_agregadas = opciones[:aggregate] || {}

  return Si @opciones_agregadas.is_a?(Picadillo)

  propagar ArgumentError, "Laopción:aggregate debe ser un Hash (tiene un #{@aggregate_options.class} )"
end

Detalles de los atributos de instancia

#added_optionsHash (solo lectura)

Devuelve el hash de opciones que se utilizará para el comando agregado al consultar los índices disponibles.

Devuelve:

  • (Hash)

    el hash de opciones que se utilizará para el comando agregado al consultar los índices disponibles.



22
23
24
# Archivo 'lib/mongo/search_index/view.rb', línea 22

def opciones_agregadas
  @opciones_agregadas
end

#colecciónMongo::Collection (solo lectura)

Devuelve la colección a la que pertenece esta vista.

Devuelve:



12
13
14
# Archivo 'lib/mongo/search_index/view.rb', línea 12

def Colección
  @recopilación
end

#id_de_índice_solicitado ⇒ nulo | Cadena (solo lectura)

Devuelve el ID del índice a consultar.

Devuelve:

  • (nil | Cadena ) —

    el ID de índice para query



15
16
17
# Archivo 'lib/mongo/search_index/view.rb', línea 15

def id_de_índice_solicitado
  @id_de_índice_solicitado
end

#nombre_índice_solicitadonulo | Cadena (solo lectura)

Devuelve el nombre del índice a consultar.

Devuelve:

  • (nil | Cadena ) —

    el nombre del índice a consultar



18
19
20
# Archivo 'lib/mongo/search_index/view.rb', línea 18

def nombre_índice_solicitado
  @nombre_índice_solicitado
end

Detalles del método de instancia

#create_many(índices) ⇒ Array<String>

Cree múltiples índices de búsqueda con un solo comando.

Parámetros:

  • indexes (Matriz<Hash>)

    Descripción de los índices que se crearán. Cada elemento de la lista debe ser un hash con una clave de definición y una clave de nombre opcional.

Devuelve:

  • (Matriz<String>)

    los nombres de los nuevos índices de búsqueda.



62
63
64
65
66
# Archivo 'lib/mongo/search_index/view.rb', línea 62

def crear_muchos(indexes)
  especulación = especificación_con(indexes: indexes.map { |v| validate_search_index!(v) })
  resultado = Operación::Crear índices de búsqueda.Nuevo(especulación).ejecutar(siguiente_primaria, context: contexto_de_ejecución)
  resultado.primera['índicesCreados'].map { |no me importa| no me importa['nombre '] }
end

#create_one(definición, nombre: nil, tipo: 'buscar') ⇒ Cadena

Cree un índice de búsqueda único con la definición dada. Si se proporciona el nombre, el nuevo índice recibirá ese nombre.

Parámetros:

  • definición (Hash)

    La definición del índice de búsqueda.

  • Nombre (nil | Cadena) (predeterminado: nulo)

    El nombre que se le dará al nuevo índice de búsqueda.

Devuelve:

  • (Cadena) -

    el nombre del nuevo índice de búsqueda.



51
52
53
# Archivo 'lib/mongo/search_index/view.rb', línea 51

def crear_uno(definición, nombre: nulo, tipo: ' buscar')
  crear_muchos([ { nombre: Nombre, definición: definición, tipo: tipo } ]).primera
end

#drop_one(id: nulo, nombre: nulo) ⇒ Mongo::Operación::Resultado | falso

Eliminar el índice de búsqueda con el ID o el nombre indicados. Se debe especificar uno u otro, pero no ambos.

Parámetros:

  • ID. (Cadena) (predeterminado: nulo)

    el id del índice a eliminar

  • Nombre (Cadena) (predeterminado: nulo)

    el nombre del índice a eliminar

Devuelve:



76
77
78
79
80
81
82
83
84
85
86
# Archivo 'lib/mongo/search_index/view.rb', línea 76

def soltar uno(identificación: nulo, nombre: nulo)
  validate_id_or_name!(ID., Nombre)

  especulación = especificación_con(index_id: ID., index_name: Nombre)
  op = Operación::Índice de búsqueda de caída.Nuevo(especulación)

  # según la especificación:
  # Los controladores DEBEN suprimir los errores NamespaceNotFound para
  # Ayudante ``dropSearchIndex``. Las operaciones de eliminación deben ser idempotentes.
  hacer_soltar(op, nulo, contexto_de_ejecución)
end

#cada(&bloque) ⇒ self | Enumerador

Iterar sobre los índices de búsqueda.

Parámetros:

  • bloque (Procedimiento)

    Si se proporciona, cada índice de búsqueda se entregará al bloque.

Devuelve:

  • (self | Enumerador)

    Si se proporciona un bloque, se devuelve "self". De lo contrario, se devolverá un enumerador.



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

def cada(Ybloque)
  @resultado ||= begin
    especulación = {}.grifo hacer |s|
      s[:id] = id_de_índice_solicitado Si id_de_índice_solicitado
      s[:nombre] = nombre_índice_solicitado Si nombre_índice_solicitado
    end

    Colección.con(preocupación de lectura: {}).Agregar(
      [ { '$listSearchIndexes' => especulación } ],
      opciones_agregadas
    )
  end

  return @resultado.to_enum a no ser que bloque

  @resultado.cada(Ybloque)
  yo
end

#¿vacío?verdadero | falso

Consulta si el índice de búsqueda enumerable está vacío.

Devuelve:

  • (verdadero | falso)

    si el enumerable está vacío o no.



136
137
138
# Archivo 'lib/mongo/search_index/view.rb', línea 136

def ¿vacío?
  count.zero?
end

#update_one(definition, id: nil, name: nil) ⇒ Mongo::operación::Result

Actualice el índice de búsqueda con el ID o el nombre indicados. Se debe proporcionar uno u otro, pero no ambos.

Parámetros:

  • definición (Hash)

    la definición para reemplazar el índice de búsqueda dado por.

  • ID. (nil | Cadena) (predeterminado: nulo)

    el id del índice de búsqueda a actualizar

  • Nombre (nil | Cadena) (predeterminado: nulo)

    el nombre del índice de búsqueda a actualizar

Devuelve:



123
124
125
126
127
128
# Archivo 'lib/mongo/search_index/view.rb', línea 123

def update_one(definición, identificación: nulo, nombre: nulo)
  validate_id_or_name!(ID., Nombre)

  especulación = especificación_con(index_id: ID., index_name: Nombre, index: definición)
  Operación::Actualizar índice de búsqueda.Nuevo(especulación).ejecutar(siguiente_primaria, context: contexto_de_ejecución)
end