Clase: Mongo::índice::View
- Hereda:
-
Objeto
- Objeto
- Mongo::índice::View
- Ampliado por:
- Reenviable
- Incluye:
- Enumerable, Cursor::NonTailable, CursorHost, Retryable
- Definido en:
- lib/mongo/índice/view.rb
Overview
Una clase que representa una vista de índices.
Resumen de constantes colapsar
- CLAVE =
El campo de clave de índice.
'llave'- NAME =
El campo del nombre del índice.
'Nombre'- OPCIONES =
Las asignaciones de las opciones de índice de Ruby a las opciones del servidor.
{ segundo plano: segundo plano, bits: bits, bucket_size: TamañoDelCubo, default_language: idioma_predeterminado, expire_after: expireAfterSeconds, expirar_despues_de_segundos: expireAfterSeconds, clave: :clave, language_override: :language_override, máx.: max:, min: :min, nombre: nombre, partial_filter_expression: partialFilterExpression, sparse: :sparse, sphere_version: :'2dsphereIndexVersion', storage_engine: :storageEngine, versión_texto: :textIndexVersion, unique: :unique, versión: :v, pesos: :pesas, intercalación: intercalación, comment: :comment, proyección comodín: wildcardProjection, }.freeze
Resumen de atributos de la instancia colapsar
-
#lote_tamaño ⇒ Entero
Solo lectura
Batch_size El tamaño de la tanda de resultados al enviar el comando listIndexes.
-
#colección ⇒ Colección
Solo lectura
Colección La colección de índices.
-
#operation_timeout_ms ⇒ Integer | nil | El valor de timeout_ms que se ha pasado como una opción a la vista.
Solo lectura
privado
Entero | nil | El valor de timeout_ms que se pasó como opción a la vista.
Atributos incluidos de CursorHost
Resumen del método de instancia colapsar
-
<spanclass=\"\"> <a href=\" \" title=\" \"># create_many(*models) ⇒ Result <span class=\" \">
Crea varios índices en la colección.
-
#create_one(keys, options = {}) ⇒ Resultado
Crea un índice en la colección.
-
#drop_all(opciones = {}) ⇒ Resultado
Descartar todos los índices de la colección.
-
#drop_one(nombre, opciones = {}) ⇒ Resultado
Elimine un índice por su nombre.
-
#each(&block) ⇒ Object
Iterar sobre todos los índices de la colección.
-
#obtener(keys_or_name) ⇒ Hash
Método conveniente para obtener información de índices por un nombre o especificación específica.
-
#initializar(colección, opciones = {}) ⇒ Vista
constructor
Crea la nueva vista del índice.
-
#operation_timeouts(opciones = {}) ⇒ Hash
privado
Valor timeout_ms configurado a nivel de operación (si lo hay), y/o timeout_ms configurado a nivel de colección/base de datos/cliente (si lo hay).
-
#timeout_ms ⇒ Integer | nil
El valor de timeout_ms que se utilizará para esta operación; se puede especificar como una opción para la vista o heredarse de la colección.
Métodos incluidos desde Cursor::NonTailable
Métodos incluidos desde CursorHost
Métodos incluidos de Retryable
#read_worker, #select_server, #with_overload_retry, #write_worker
Detalles del Constructor
#initialize(colección, options = {}) ⇒ Ver
Crea la nueva vista del índice.
318 319 320 321 322 323 324 325 326 |
# Archivo 'lib/mongo/índice/view.rb', línea 318 def inicializar(Colección, = {}) @colección = Colección @operation_timeout_ms = .borrar(:timeout_ms) validate_timeout_mode!() @batch_size = [:batch_size] @options = end |
Detalles de atributo de instancias
#batch_size ⇒ Integer (solo lectura)
Retorna batch_size El tamaño del agrupar de resultados al enviar el comando listIndexes.
36 37 38 |
# Archivo 'lib/mongo/índice/view.rb', línea 36 def batch_size @batch_size end |
#colección ⇒ Colección (solo lectura)
Retorna colección, la colección de índices.
32 33 34 |
# Archivo 'lib/mongo/índice/view.rb', línea 32 def Colección @colección end |
#operation_timeout_ms ⇒ Entero | nulo | El valor timeout_ms que se pasó como opción a la vista. (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve un entero | nil | El valor timeout_ms que se pasó como opción a la vista.
42 43 44 |
# Archivo 'lib/mongo/índice/view.rb', línea 42 def operation_timeout_ms @operation_timeout_ms end |
Detalles del método de instancia
#create_many(*models) ⇒ Resultado
Crea varios índices en la colección.
213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# Archivo 'lib/mongo/índice/view.rb', línea 213 def create_many(*modelos) modelos = modelos.nivelar = {} = modelos.pop si modelos && !modelos.último.key?(:clave) Cliente.con_sesión(@options.fusionar()) hacer |sesión| indexes = normalize_models(modelos) indexes.cada hacer |index| si index[TamañoDelCubo] || index['bucketSize'] Cliente.log_warn('Los índices de Haystack (opción de índice bucketSize) están obsoletos a partir de MongoDB 4.4') end end especificación = { indexes: indexes, db_name: database.Nombre, coll_name: Colección.Nombre, sesión: sesión, commit_quorum: [:commit_quorum], write_concern: write_concern, comment: [:comment], } context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: operation_timeouts() ) Operación = Operación::CreateIndex.Nuevo(especificación) trazador.trace_operation(Operación, context, op_name: 'createIndexes') hacer retry_enabled = Colección.Cliente.[retry_writes] != false con_reintento_por_sobrecarga(context: context, retry_enabled: retry_enabled) hacer Server = siguiente_principal(nulo, sesión) Operación.ejecutar(Server, context: context) end end end end |
#create_one(claves, opciones = {}) ⇒ Result
Tenga en cuenta que las opciones enumeradas pueden ser un subconjunto de las disponibles.
Crea un índice en la colección.
Consulta la documentación de MongoDB para obtener una lista completa de las opciones admitidas por versión de servidor.
167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# Archivo 'lib/mongo/índice/view.rb', línea 167 def create_one(claves, = {}) = .dup = {} si sesión = @options[:: sesión] [:: sesión] = sesión end %i[commit_quorum sesión comment timeout_ms max_time_ms].cada hacer |llave| si Valor = .borrar(llave) [llave] = Valor end end create_many({ clave: claves }.fusionar(), ) end |
#drop_all(options = {}) ⇒ Result
Descartar todos los índices de la colección.
119 120 121 |
# Archivo 'lib/mongo/índice/view.rb', línea 119 def drop_all( = {}) descartar_por_nombre(Index::Todo, ) end |
#drop_one(name, options = {}) ⇒ Result
Elimine un índice por su nombre.
100 101 102 103 104 |
# Archivo 'lib/mongo/índice/view.rb', línea 100 def drop_one(Nombre, = {}) propagar Error::MultiIndexDrop.Nuevo si Nombre == Index::Todo descartar_por_nombre(Nombre, ) end |
#each(&bloque) ⇒ Objeto
Iterar sobre todos los índices de la colección.
279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
# Archivo 'lib/mongo/índice/view.rb', línea 279 def cada(&bloque) sesión = Cliente.get_session(@options) context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: operation_timeouts(@options) ) op = initial_query_op(sesión) trazador.trace_operation(op, context, op_name: 'listIndexes') hacer cursor = leer_con_reintento_cursor(sesión, ServerSelector.primario, sí mismo, context: context) hacer |Server| send_initial_query(op, Server, sesión, context) end si ¿block_given? cursor.cada(&bloque) else cursor.to_enum end end end |
#get(keys_or_name) ⇒ Hash
Método conveniente para obtener información de índices por un nombre o especificación específica.
265 266 267 268 269 |
# Archivo 'lib/mongo/índice/view.rb', línea 265 def Obtener(claves o nombre) buscar hacer |index| (index[Nombre] == claves o nombre) || (index[KEY] == normalize_keys(claves o nombre)) end end |
#operation_timeouts(opts = {}) ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el valor de timeout_ms establecido a nivel de la operación (si lo hay), y/o timeout_ms que se establece a nivel de colección/base de datos/cliente (si lo hay).
340 341 342 343 344 345 346 347 348 |
# Archivo 'lib/mongo/índice/view.rb', línea 340 def operation_timeouts(opciones = {}) {}.tocar hacer |Resultado| si opciones[:timeout_ms] || operation_timeout_ms Resultado[:operation_timeout_ms] = opciones.borrar(:timeout_ms) || operation_timeout_ms else Resultado[timeout_inherente_ms] = Colección.timeout_ms end end end |
#timeout_ms ⇒ Integer | nil
El valor de timeout_ms que se utilizará para esta operación; se puede especificar como una opción para la vista o heredarse de la colección.
332 333 334 |
# Archivo 'lib/mongo/índice/view.rb', línea 332 def timeout_ms operation_timeout_ms || Colección.timeout_ms end |