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.
Colapso delresumen constante
- CLAVE =
El campo de clave de índice.
'key'.freeze
- NAME =
El campo del nombre del índice.
'nombre'.freeze
- OPCIONES =
Las asignaciones de las opciones de índice de Ruby a las opciones del servidor.
{ segundo plano => segundo plano, bits => bits, bucket_size => :tamaño del cubo, :idioma predeterminado => :idioma predeterminado, expire_after => expireAfterSeconds, :caduca después de segundos => expireAfterSeconds, :clave => :clave, :language_override => :language_override, :máximo => :máximo, :min => :min, nombre => nombre, partial_filter_expression => partialFilterExpression, :sparse => :sparse, :sphere_version => :'2dsphereIndexVersion', :motor de almacenamiento => :storageEngine, :versión_de_texto => :textIndexVersion, :unique => :unique, :versión => :v, :pesas => :pesas, :colación => :colación, :comment => :comment, :wildcard_projection => :proyección comodín, }.freeze
Resumen de atributos de la instancia colapsar
-
#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
privado
Entero | nulo | El valor timeout_ms que se pasó como opción a la vista.
Atributos incluidos desde CursorHost
Resumen del método de instancia colapsar
-
<spanclass=\"\"> <a href=\" \" title=\" \"># create_many(*models) ⇒ Result <span class=\" \">
Crea múltiples í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 en Retryable
#read_worker, #select_server, #write_worker
Detalles del constructor
#inicializar(colección, opciones = {}) ⇒ 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 los atributos de instancia
#batch_size ⇒ Integer (solo lectura)
Retorna batch_size El tamaño del agrupar de resultados al enviar el comando listIndexes.
38 39 40 |
# Archivo 'lib/mongo/índice/view.rb', línea 38 def tamaño del lote @batch_size end |
#colección ⇒ Colección (solo lectura)
Retorna colección, la colección de índices.
34 35 36 |
# Archivo 'lib/mongo/índice/view.rb', línea 34 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 forma parte de una API privada. Debe evitarlo 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.
44 45 46 |
# Archivo 'lib/mongo/índice/view.rb', línea 44 def operation_timeout_ms @operation_timeout_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/índice/view.rb', línea 216 def create_many(*modelos) modelos = modelos.nivelar = {} si modelos && !modelos.último.key?(:clave) = modelos.pop end Cliente.con_sesión(@options.fusionar()) hacer |sesión| Server = siguiente_principal(nulo, sesión) indexes = normalize_models(modelos, Server) indexes.cada hacer |index| si index[:tamaño del cubo] || index['bucketSize'] 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, commit_quorum: [:commit_quorum], write_concern: escribir_preocupación, comment: [:comment], } context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: 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.
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 crear_uno(claves, = {}) = .dup = {} si sesión = @options[:: sesión] [:: sesión] = sesión end %i(commit_quorum sesión comment timeout_ms tiempo máximo_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.
101 102 103 104 |
# Archivo 'lib/mongo/índice/view.rb', línea 101 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(Ybloque) sesión = Cliente.get_session(@options) context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: tiempos de espera de operación(@options) ) cursor = leer_con_reintento_cursor(sesión, ServerSelector.primario, sí mismo, context: context) hacer |Server| enviar_consulta_inicial(Server, sesión, context) end si ¿block_given? cursor.cada hacer |doc| rendimiento doc end else cursor.to_enum 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 |
#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 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 tiempos de espera de operación(opta = {}) {}.tocar hacer |Resultado| si opta[:timeout_ms] || operation_timeout_ms Resultado[:operation_timeout_ms] = opta.borrar(:timeout_ms) || operation_timeout_ms else Resultado[:tiempo de espera heredado_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 |