Clase: Mongo::Index::View
- Hereda:
-
Objeto
- Objeto
- Mongo::Índice::Vista
- Ampliado por:
- Reenviable
- Incluye:
- Enumerable, Cursor::NonTailable, CursorHost, Reintentable
- Definido en:
- lib/mongo/index/view.rb
Overview
Una clase que representa una vista de índices.
Colapso delresumen constante
- CLAVE =
El campo de clave de índice.
'key'.freeze
- NOMBRE =
El campo de nombre de índice.
'nombre '.freeze
- OPCIONES =
Las asignaciones de las opciones de índice de Ruby a las opciones del servidor.
{ :fondo => :fondo, :bits => :bits, :tamaño del cubo => :tamaño del cubo, :idioma predeterminado => :idioma predeterminado, :caduca después de => :expireAfterSeconds, :caduca después de segundos => :expireAfterSeconds, :llave => :llave, :anulación del idioma => :anulación del idioma, :máximo => :máximo, :min => :min, :nombre => :nombre, :expresión_de_filtro_parcial => :expresióndefiltroparcial, :sparse => :sparse, :versión_esfera => :'2dsphereIndexVersion', :motor de almacenamiento => :motor de almacenamiento, :versión_de_texto => :textIndexVersion, :unique => :unique, :versión => :v, :pesos => :pesos, :colación => :colación, :comment => :comment, :proyección_comodín => :proyección comodín, }.freeze
Colapso delresumen de atributos de instancia
-
#tamaño_del_lote ⇒ Entero
solo lectura
Batch_size El tamaño del lote de resultados al enviar el comando listIndexes.
-
#colección ⇒ Colección
solo lectura
Colección La colección de índices.
-
#operation_timeout_ms ⇒ Entero | nulo | El valor de timeout_ms que se pasó como opción a la vista.
solo lectura
privada
Entero | nulo | El valor timeout_ms que se pasó como opción a la vista.
Atributos incluidos desde CursorHost
Colapso del resumen del método de instancia
-
#create_many(*modelos) ⇒ Resultado
Crea múltiples índices en la colección.
-
#create_one(claves, opciones = {}) ⇒ Resultado
Crea un índice en la colección.
-
#drop_all(opciones = {}) ⇒ Resultado
Eliminar todos los índices de la colección.
-
#drop_one(nombre, opciones = {}) ⇒ Resultado
Eliminar un índice por su nombre.
-
#cada(&bloque) ⇒ Objeto
Iterar sobre todos los índices de la colección.
-
#obtener(claves_o_nombre) ⇒ Hash
Método conveniente para obtener información de índices por un nombre o especificación específica.
-
#inicializar(colección, opciones = {}) ⇒ Ver
constructor
Crear la nueva vista de índice.
-
#tiempos_de_espera_de_operación(opciones = {}) ⇒ Hash
privada
Valor timeout_ms establecido en el nivel de operación (si lo hay) y/o timeout_ms establecido en el nivel de recopilación/base de datos/cliente (si lo hay).
-
#timeout_ms ⇒ Integer | nil
El valor timeout_ms que se utilizará para esta operación, ya sea especificado como una opción para la vista o heredado de la colección.
Métodos incluidos en Cursor::NonTailable
Métodos incluidos desde CursorHost
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.
318 319 320 321 322 323 324 325 326 |
# Archivo 'lib/mongo/index/view.rb', línea 318 def inicializar(Colección, = {}) @recopilación = Colección @tiempo_de_espera_de_operación_ms = .borrar(:tiempo de espera_ms) validate_timeout_mode!() @tamaño_de_lote = [:tamaño_del_lote] @opciones = end |
Detalles de los atributos de instancia
#batch_size ⇒ Entero (solo lectura)
Devuelve batch_size El tamaño del lote de resultados al enviar el comando listIndexes.
38 39 40 |
# Archivo 'lib/mongo/index/view.rb', línea 38 def tamaño del lote @tamaño_de_lote end |
#colección ⇒ Colección (solo lectura)
Retorna colección, la colección de índices.
34 35 36 |
# Archivo 'lib/mongo/index/view.rb', línea 34 def Colección @recopilación end |
#operation_timeout_ms ⇒ Entero | nulo | El valor de timeout_ms que se pasó como opción a la vista. (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve un entero | nulo | El valor timeout_ms que se pasó como opción a la vista.
44 45 46 |
# Archivo 'lib/mongo/index/view.rb', línea 44 def tiempo de espera de operación_ms @tiempo_de_espera_de_operación_ms end |
Detalles del método de instancia
#create_many(*models) ⇒ Resultado
En MongoDB 3.0.0 y superiores, los índices se crearán en paralelo en el servidor.
Crea múltiples índices en la colección.
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/index/view.rb', línea 216 def crear_muchos(*modelos) modelos = modelos.aplanar = {} Si modelos && !modelos.última.key?(:llave) = modelos.pop end Cliente.con_sesión(@opciones.unir()) hacer |sesión| Server = siguiente_primaria(nulo, sesión) indexes = normalizar_modelos(modelos, Server) indexes.cada hacer |index| Si index[:tamaño del cubo] || index['tamaño del cubo '] Cliente.advertencia de registro(”Los índices Haystack (opción de índice bucketSize) están desaprobados a partir de MongoDB 4.4”) end end especulación = { indexes: indexes, nombre_base_datos: database.Nombre, nombre_coll: Colección.Nombre, sesión: sesión, quórum de confirmación: [:cuórum de compromiso], escribir_preocupación: escribir_preocupación, comment: [:comment], } context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, tiempos de espera de operación: tiempos de espera de operación() ) Operación::CreateIndex.Nuevo(especulación).ejecutar(Server, context: context) 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.
Consulte la documentación de MongoDB para obtener una lista completa de las opciones compatibles según la versión del servidor.
167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# Archivo 'lib/mongo/index/view.rb', línea 167 def crear_uno(claves, = {}) = .dup = {} Si sesión = @opciones[:sesión] [:sesión] = sesión end %i(commit_quorum sesión comment tiempo de espera_ms tiempo máximo_ms).cada hacer |clave| Si valor = .borrar(clave) [clave] = valor end end crear_muchos({ llave: claves }.unir(), ) end |
#drop_all(opciones = {}) ⇒ Resultado
Eliminar todos los índices de la colección.
119 120 121 |
# Archivo 'lib/mongo/index/view.rb', línea 119 def soltar_todo( = {}) dejar_por_nombre(Index::TODOS, ) end |
#drop_one(nombre, opciones = {}) ⇒ Resultado
Eliminar un índice por su nombre.
101 102 103 104 |
# Archivo 'lib/mongo/index/view.rb', línea 101 def soltar uno(Nombre, = {}) propagar Error::MultiIndexDrop.Nuevo Si Nombre == Index::TODOS dejar_por_nombre(Nombre, ) end |
#cada(&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/index/view.rb', línea 279 def cada(Ybloque) sesión = Cliente.obtener_sesión(@opciones) context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, tiempos de espera de operación: tiempos de espera de operación(@opciones) ) cursor = lectura con cursor de reintento(sesión, Selector de servidor.primario, yo, context: context) hacer |Server| enviar_consulta_inicial(Server, sesión, context) end Si ¿bloque_dado? cursor.cada hacer |doc| rendimiento doc end else cursor.to_enum end end |
#obtener(claves_o_nombre) ⇒ 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/index/view.rb', línea 265 def Obtener(llaves_o_nombre) buscar hacer |index| (index[NOMBRE] == llaves_o_nombre) || (index[KEY] == normalizar_claves(llaves_o_nombre)) end end |
#tiempos_de_espera_de_operación(opciones = {}) ⇒ Hash
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el valor timeout_ms establecido en el nivel de operación (si lo hay) y/o el timeout_ms establecido en el nivel de colección/base de datos/cliente (si lo hay).
340 341 342 343 344 345 346 347 348 |
# Archivo 'lib/mongo/index/view.rb', línea 340 def tiempos de espera de operación(opta = {}) {}.grifo hacer |resultado| Si opta[:tiempo de espera_ms] || tiempo de espera de operación_ms resultado[:tiempo de espera_de_operación_ms] = opta.borrar(:tiempo de espera_ms) || tiempo de espera de operación_ms else resultado[:tiempo de espera heredado_ms] = Colección.tiempo de espera_ms end end end |
#timeout_ms ⇒ Integer | nil
El valor timeout_ms que se utilizará para esta operación, ya sea especificado como una opción para la vista o heredado de la colección.
332 333 334 |
# Archivo 'lib/mongo/index/view.rb', línea 332 def tiempo de espera_ms tiempo de espera de operación_ms || Colección.tiempo de espera_ms end |