Clase: Mongo::SearchIndex::View

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

Overview

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

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Métodos incluidos en Collection::Helpers

#do_drop

Métodos incluidos en Retryable

#read_worker, #select_server, #write_worker

Detalles del constructor

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

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

Parámetros:

  • Colección (colección)

    La colección.

  • opciones (Hash) (por defecto: {})

    Las opciones que configuran el comportamiento de la vista.

Opciones Hash (options):

  • :id (Cadena)

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

  • nombre (Cadena)

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

  • :aggregate (Hash)

    El hash de opciones para enviar al comando de agregado al consultar los índices disponibles.

Aumenta:

  • (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 = {})
  @colección = Colección
  @requested_index_id = opciones[:id]
  @nombre_índice_solicitado = opciones[nombre]
  @opciones_agregadas = opciones[:aggregate] || {}

  return si @opciones_agregadas.is_a?(Picadillo)

  propagar ArgumentError, "La opción :aggregate debe ser una Hash (se obtuvo una #{@aggregate_options.clase})"
end

Detalles de los atributos de instancia

#aggregate_optionsHash (solo lectura)

Devuelve el hash de opciones que se usará para el comando de agregación al consultar los índices disponibles.

Devuelve:

  • (encriptada)

    el hash de opciones que se utilizarán para el comando de agregación 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
  @colección
end

#requested_index_idnil | String (solo lectura)

Devuelve el id del índice a query.

Devuelve:

  • (nil | String)

    el ID de índice para query



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

def id_de_índice_solicitado
  @requested_index_id
end

#requested_index_namenil | String (solo lectura)

Devuelve el nombre del índice a consultar.

Devuelve:

  • (nil | String)

    el nombre del índice a query



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

def requested_index_name
  @nombre_índice_solicitado
end

Detalles del método de instancia

#create_many(índices) ⇒ arreglo<String>

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

Parámetros:

  • indexes (arreglo<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:

  • (arreglo<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 create_many(indexes)
  especulación = especificación_con(indexes: indexes.map { |v| validate_search_index!(v) })
  Resultado = Operación::CreateSearchIndexes.Nuevo(especulación).ejecutar(siguiente_principal, context: execution_context)
  Resultado.primero['indexesCreated'].map { |índice| índice['nombre'] }
end

#create_one(definición, name: nil, type: 'búsqueda') ⇒ String

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 (encriptada)

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

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

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

Devuelve:

  • (string)

    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')
  create_many([ { nombre: Nombre, definición: Definición, tipo: tipo } ]).primero
end

#drop_one(id: nil, name: nil) ⇒ Mongo::operación::Result | false

Descarta el índice de búsqueda con el ID o nombre dado. Debe especificarse 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 descartar

Devuelve:



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

def drop_one(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::DropSearchIndex.Nuevo(especulación)

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

#each(&block) ⇒ self | Enumerator

Iterar sobre los índices de búsqueda.

Parámetros:

  • bloque (Proc)

    si se proporciona, cada índice de búsqueda se pasará al bloque.

Devuelve:

  • (self | Enumerador)

    si se proporciona un bloque, self se devuelve. 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 = {}.tocar hacer |s|
      s[:id] = id_de_índice_solicitado si id_de_índice_solicitado
      s[nombre] = requested_index_name si requested_index_name
    end

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

  return @resultado.to_enum a menos que bloque

  @resultado.cada(Ybloque)
  sí mismo
end

#empty?true | false

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

Devuelve:

  • (true | false)

    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 (encriptada)

    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::UpdateSearchIndex.Nuevo(especulación).ejecutar(siguiente_principal, context: execution_context)
end