Módulo: Mongo::Collection::View::Readable

Incluido en:
Mongo::Colección::Ver
Definido en:
lib/mongo/collection/view/readable.rb

Overview

Define el comportamiento relacionado con la lectura para la vista de colección.

Desde:

  • 2.0.0

Resumen del método de instancia colapsar

Detalles del método de instancia

#aggregate(pipeline, options = {}) ⇒ Agregación

Ejecutar una agregación en la vista de colección.

Ejemplos:

Agrupar documentos.

view.aggregate([
  { "$group" => { "_id" => "$city", "tpop" => { "$sum" => "$pop" }}}
])

Parámetros:

  • pipeline (arreglo<Hash>)

    La pipeline de agregación.

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

    Las opciones de agregación.

Opciones Hash (options):

  • permite_uso_de_disco (verdadero, falso)

    Establece en "true" si se permite el uso del disco durante la agregación.

  • :batch_size (Entero)

    El número de documentos a devolver por agrupar.

  • :omitir validación de documento (verdadero, falso)

    Si omitir o no la validación a nivel de documento.

  • :colación (Hash)

    La intercalación para usar.

  • :comment (Objeto)

    Un comentario proporcionado por el usuario para adjuntar a este comando.

  • :hint (Cadena)

    El índice que se utilizará para la agregación.

  • :let (Hash)

    Asignación de variables para usar en el pipeline. Consulta la documentación del servidor para más detalles.

  • max_time_ms (Entero)

    El tiempo máximo en milisegundos que permite que se ejecute la agregación. Esta opción está obsoleta; utilice :timeout_ms en su lugar.

  • :: sesión (Sesión)

    La sesión para usar.

  • :timeout_ms (Entero)

    El tiempo de espera de la operación en milisegundos. Debe ser un número entero no negativo. Un valor explícito de 0 significa infinito. El valor por defecto no está establecido, lo que significa que se hereda de la colección, la base de datos o el cliente.

Devuelve:

Desde:

  • 2.0.0



61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Archivo 'lib/mongo/collection/view/readable.rb', línea 61

def Agregar(pipeline, opciones = {})
  opciones = @options.fusionar(opciones) a menos que Mongo.broken_view_options
  Agregación = Agregación.Nuevo(sí mismo, pipeline, opciones)

  # Porque las etapas de la pipeline $merge y $out escriben documentos en
  # colección, es necesario borrar la caché cuando se realizan.
  #
  # Elige limpiar toda la caché en lugar de solo un espacio de nombres porque
  # las etapas $out y $merge no tienen que escribirse en el mismo namespace
  # en la que se realiza la agregación.
  Caché de consultas.borrar si Agregación.guardar?

  Agregación
end

#allow_disk_useVer

Permite que el servidor escriba datos temporales en el disco mientras ejecuta una operación de búsqueda.

Devuelve:

  • (Vista) -

    La nueva vista.

Desde:

  • 2.0.0



80
81
82
# Archivo 'lib/mongo/collection/view/readable.rb', línea 80

def permitir_uso_de_disco
  configurar(permite_uso_de_disco, true)
end

#allow_partial_resultsVer

Permite que la consulta obtenga resultados parciales si algunos fragmentos están inactivos.

Ejemplos:

Permitir resultados parciales.

view.allow_partial_results

Devuelve:

  • (Vista) -

    La nueva vista.

Desde:

  • 2.0.0



92
93
94
# Archivo 'lib/mongo/collection/view/readable.rb', línea 92

def allow_partial_results
  configurar(permitir_resultados_parciales, true)
end

#await_dataVer

Indique al cursor de la query que permanezca abierto y espere datos.

Ejemplos:

Espere datos en el cursor.

view.await_data

Devuelve:

  • (Vista) -

    La nueva vista.

Desde:

  • 2.0.0



104
105
106
# Archivo 'lib/mongo/collection/view/readable.rb', línea 104

def await_data
  configurar(:espera_datos, true)
end

#tamaño_lote(tamaño_lote = nulo) ⇒ Entero, Vista

Nota:

Especificar 1 o un número negativo es análogo a establecer un límite.

La cantidad de documentos devueltos en cada lote de resultados de MongoDB.

Ejemplos:

Establecer el tamaño del lote.

view.batch_size(5)

Parámetros:

  • tamaño del lote (Entero) (predeterminado: nulo)

    El tamaño de cada lote de resultados.

Devuelve:

  • (Entero, Ver)

    O bien el valor de batch_size o un nuevo View.

Desde:

  • 2.0.0



121
122
123
# Archivo 'lib/mongo/collection/view/readable.rb', línea 121

def tamaño del lote(tamaño del lote = nulo)
  configurar(:batch_size, tamaño del lote)
end

#comentario(comentario = nulo) ⇒ Cadena, Vista

Nota:

Configure el nivel de perfilado en 2 y el comentario se registrará en la colección de perfiles junto con la query.

Relaciona un comentario con la query.

Ejemplos:

Añade un comentario.

view.comment('slow query')

Parámetros:

  • comment (Objeto) (predeterminado: nulo)

    El comentario que se asociará con la query.

Devuelve:

  • (Cadena,Vista)

    O el comentario o un nuevo View.

Desde:

  • 2.0.0



139
140
141
# Archivo 'lib/mongo/collection/view/readable.rb', línea 139

def comment(comment = nulo)
  configurar(:comment, comment)
end

#count(opts = {}) ⇒ Entero

Obsoleto.

Utiliza #count_documents o #estimated_document_count en su lugar. Sin embargo, tenga en cuenta que los siguientes operadores deberán ser sustituidos al cambiar a #count_documents:

* $where should be replaced with $expr (only works on 3.6+)
* $near should be replaced with $geoWithin with $center
* $nearSphere should be replaced with $geoWithin with $centerSphere

Obtenga un recuento de documentos coincidentes en la colección.

Ejemplos:

Obtenga el número de documentos en la colección.

collection_view.count

Parámetros:

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

    Opciones para la operación.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • Omitir (Entero)

    El número de documentos a omitir.

  • :hint (Hash)

    Anule la selección por defecto del índice y obligue a MongoDB a usar un índice específico para la query.

  • :limit (Entero)

    Número máximo de Docs a contar.

  • max_time_ms (Entero)

    La cantidad máxima de tiempo permitida para que se ejecute el comando.

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :colación (Hash)

    La intercalación para usar.

  • :: sesión (Mongo::Session)

    La sesión a utilizar para la operación.

  • :comment (Objeto)

    Un comentario proporcionado por el usuario para adjuntar a este comando.

Devuelve:

  • (Número entero)

    El recuento de documentos.

Desde:

  • 2.0.0



175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
# Archivo 'lib/mongo/collection/view/readable.rb', línea 175

def count(opta = {})
  opta = @options.fusionar(opta) a menos que Mongo.broken_view_options
  cmd = { \:count => Colección.Nombre, :consulta => filtro }
  cmd[Omitir] = opta[Omitir] si opta[Omitir]
  cmd[:hint] = opta[:hint] si opta[:hint]
  cmd[:limit] = opta[:limit] si opta[:limit]
  si leer_preocupación
    cmd[:leerPreocupación] = opciones::Mapeador.transform_values_to_strings(
      leer_preocupación)
  end
  cmd[Tiempo máximo en milisegundos (:maxTimeMS)] = opta[max_time_ms] si opta[max_time_ms]
  Mongo::Lint.validar_preferencia_de_lectura_de_subrayado(opta[:leer])
  lectura_pref = opta[:leer] || read_preference
  selector = ServerSelector.Obtener(lectura_pref || selector_de_servidor)
  con_sesión(opta) hacer |sesión|
    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      operation_timeouts: tiempos de espera de operación(opta)
    )
    read_with_retry(sesión, selector, context) hacer |Server|
      Operación::Contar.Nuevo(
        selector: cmd,
        nombre_base_datos: database.Nombre,
        opciones: {:limit => -1},
        leer: lectura_pref,
        sesión: sesión,
        # Por alguna razón, la intercalación fue históricamente aceptada como una
        # clave de cadena. Tenga en cuenta que este uso no está documentado como válido.
        intercalación: opta[:colación] || opta['intercalación'] || intercalación,
        comment: opta[:comment],
      ).ejecutar(
        Server,
        context: context
      )
    end.n.to_i
  end
end

#count_documents(opts = {}) ⇒ Integer

Obtenga un recuento de documentos coincidentes en la colección.

Ejemplos:

Obtenga el número de documentos en la colección.

collection_view.count

Parámetros:

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

    Opciones para la operación.

  • ops (encriptada)

    un conjunto personalizable de opciones

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • Omitir (Entero)

    El número de documentos a omitir.

  • :hint (Hash)

    Anular la selección de índice predeterminada y obligar a MongoDB a usar un índice específico para la consulta. Requiere la versión de servidor 3.6o superior.

  • :limit (Entero)

    Número máximo de Docs a contar.

  • max_time_ms (Entero)

    El tiempo máximo que se permite ejecutar el comando. Esta opción está obsoleta; utilice :timeout_ms en su lugar.

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :colación (Hash)

    La intercalación para usar.

  • :: sesión (Mongo::Session)

    La sesión a utilizar para la operación.

Devuelve:

  • (Número entero)

    El recuento de documentos.

Desde:

  • 2.6.0



241
242
243
244
245
246
247
248
249
250
251
252
253
254
# Archivo 'lib/mongo/collection/view/readable.rb', línea 241

def contar_documentos(opta = {})
  opta = @options.fusionar(opta) a menos que Mongo.broken_view_options
  pipeline = [:'$match' => filtro]
  pipeline << { :'$skip' => opta[Omitir] } si opta[Omitir]
  pipeline << { :'$limit' => opta[:limit] } si opta[:limit]
  pipeline << { :'$grupo' => { _id: 1, n: { :'$sum' => 1 } } }

  opta = opta.rebanada(:hint, max_time_ms, :leer, :colación, :: sesión, :comment, :timeout_ms)
  opta[:colación] ||= intercalación

  primero = Agregar(pipeline, opta).primero
  return 0 a menos que primero
  primero['n'].to_i
end

#cursor_type(type = nil) ⇒ :tailable, ...

El tipo de cursor que se debe usar. Puede ser :tailable o :tailable_await.

Ejemplos:

Establecer el tipo de cursor.

view.cursor_type(:tailable)

Parámetros:

  • tipo (:tailable,:tailable_await) (predeterminado: nulo)

    El tipo de cursor.

Devuelve:

  • (:tailable, :tailable_await, Ver)

    O bien la configuración del tipo de cursor o un nuevo View.

Desde:

  • 2.3.0



660
661
662
# Archivo 'lib/mongo/collection/view/readable.rb', línea 660

def cursor_type(tipo = nulo)
  configurar(tipo_de_cursor, tipo)
end

#distinct(field_name, opts = {}) ⇒ arreglo<Object>

Obtén una lista de valores distintos para un campo específico.

Ejemplos:

Obtén los valores distintos.

collection_view.distinct('name')

Parámetros:

  • field_name (Cadena,Símbolo)

    El nombre del campo.

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

    Opciones para el comando distinct.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • max_time_ms (Entero)

    La cantidad máxima de tiempo permitida para que se ejecute el comando.

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :colación (Hash)

    La intercalación para usar.

Devuelve:

  • (arreglo<Object>)

    La lista de valores distintos.

Desde:

  • 2.0.0



343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
# Archivo 'lib/mongo/collection/view/readable.rb', línea 343

def distinct(field_name, opta = {})
  si field_name.nil?
    propagar ArgumentError, 'El nombre del campo para una operación distinta no debe ser nulo'
  end
  opta = @options.fusionar(opta) a menos que Mongo.broken_view_options
  cmd = { :distinto => Colección.Nombre,
          :clave => field_name.to_s,
          :consulta => filtro, }
  cmd[Tiempo máximo en milisegundos (:maxTimeMS)] = opta[max_time_ms] si opta[max_time_ms]
  si leer_preocupación
    cmd[:leerPreocupación] = opciones::Mapeador.transform_values_to_strings(
      leer_preocupación)
  end
  Mongo::Lint.validar_preferencia_de_lectura_de_subrayado(opta[:leer])
  lectura_pref = opta[:leer] || read_preference
  selector = ServerSelector.Obtener(lectura_pref || selector_de_servidor)
  con_sesión(opta) hacer |sesión|
    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      operation_timeouts: tiempos de espera de operación(opta)
    )
    read_with_retry(sesión, selector, context) hacer |Server|
      Operación::distinct.Nuevo(
        selector: cmd,
        nombre_base_datos: database.Nombre,
        opciones: {:limit => -1},
        leer: lectura_pref,
        sesión: sesión,
        comment: opta[:comment],
        # Por alguna razón, la intercalación fue históricamente aceptada como una
        # clave de cadena. Tenga en cuenta que este uso no está documentado como válido.
        intercalación: opta[:colación] || opta['intercalación'] || intercalación,
      ).ejecutar(
        Server,
        context: context
      )
    end.primero['values']
  end
end

#estimated_document_count(opts = {}) ⇒ Integer

Se obtiene una estimación de la cantidad de documentos en una colección utilizando los metadatos de la colección.

Ejemplos:

Obtenga el número de documentos en la colección.

collection_view.estimated_document_count

Parámetros:

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

    Opciones para la operación.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • max_time_ms (Entero)

    La cantidad máxima de tiempo permitida para que se ejecute el comando.

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :comment (Objeto)

    Un comentario proporcionado por el usuario para adjuntar a este comando.

Devuelve:

  • (Número entero)

    El recuento de documentos.

Desde:

  • 2.6.0



276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
# Archivo 'lib/mongo/collection/view/readable.rb', línea 276

def estimated_document_count(opta = {})
  a menos que vista.filtro.¿vacío?
    propagar ArgumentError, "No se puede llamar a estimated_document_count al consultar con un filtro"
  end

  %i[limit Omitir].cada hacer |opt|
    si opciones.key?(opt) || opta.key?(opt)
      propagar ArgumentError, "Nose puede llamar a estimate_document_count al consultar con #{opt}"
    end
  end

  opta = @options.fusionar(opta) a menos que Mongo.broken_view_options
  Mongo::Lint.validar_preferencia_de_lectura_de_subrayado(opta[:leer])
  lectura_pref = opta[:leer] || read_preference
  selector = ServerSelector.Obtener(lectura_pref || selector_de_servidor)
  con_sesión(opta) hacer |sesión|
    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      operation_timeouts: tiempos de espera de operación(opta)
    )
    read_with_retry(sesión, selector, context) hacer |Server|
      cmd = { conteo: Colección.Nombre }
      cmd[Tiempo máximo en milisegundos (:maxTimeMS)] = opta[max_time_ms] si opta[max_time_ms]
      si leer_preocupación
        cmd[:leerPreocupación] = opciones::Mapeador.transform_values_to_strings(leer_preocupación)
      end
      Resultado = Operación::Contar.Nuevo(
        selector: cmd,
        nombre_base_datos: database.Nombre,
        leer: lectura_pref,
        sesión: sesión,
        comment: opta[:comment],
      ).ejecutar(Server, context: context)
      Resultado.n.to_i
    end
  end
rescate Error::OperationFailure::Familia => Excª
  si Excª.Código == 26
    # NamespaceNotFound
    # Esto solo debería suceder con la ruta de la canalización de agregación
    # (servidor 4.9+). Los servidores anteriores deberían devolver 0 para inexistente
    # colecciones.
    0
  else
    propagar
  end
end

#hint(hint = nil) ⇒ Hash, View

El índice que MongoDB se verá obligado a utilizar para la consulta.

Ejemplos:

Establezca la sugerencia de índice.

view.hint(name: 1)

Parámetros:

  • hint (Hash) (predeterminado: nulo)

    El índice que se utilizará para la query.

Devuelve:

  • (Hash, Ver)

    Utilice la sugerencia o una nueva View.

Desde:

  • 2.0.0



394
395
396
# Archivo 'lib/mongo/collection/view/readable.rb', línea 394

def hint(hint = nulo)
  configurar(:hint, hint)
end

#limit(limit = nil) ⇒ Integer, View

El número máximo de Docs que se devolverán de la consulta.

Ejemplos:

Establece el límite.

view.limit(5)

Parámetros:

  • limit (Entero) (predeterminado: nulo)

    El número de Docs a devolver.

Devuelve:

  • (Entero, Ver)

    Puede ser el límite o un nuevo View.

Desde:

  • 2.0.0



408
409
410
# Archivo 'lib/mongo/collection/view/readable.rb', línea 408

def limit(limit = nulo)
  configurar(:limit, limit)
end

#map_reduce(mapa, reducir, opciones = {}) ⇒ MapReduce

Ejecutar una operación de map/reduce en la vista de la colección.

Ejemplos:

Ejecutar una map-reduce.

view.map_reduce(map, reduce)

Parámetros:

  • map (string)

    La función js de mapa.

  • disminuir (string)

    La función reduce js.

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

    Las opciones de map/reduce.

Devuelve:

Desde:

  • 2.0.0



424
425
426
# Archivo 'lib/mongo/collection/view/readable.rb', línea 424

def mapa_reducir(map, disminuir, opciones = {})
  mapReduce.Nuevo(sí mismo, map, disminuir, @options.fusionar(opciones))
end

#max_await_time_ms(máx. = nil) ⇒ Integer, Ver

Un límite de tiempo acumulativo en milisegundos para procesar más operaciones en un cursor.

Ejemplos:

Establezca el valor máximo del tiempo de espera en ms.

view.max_await_time_ms(500)

Parámetros:

  • máximo (Entero) (predeterminado: nulo)

    El tiempo máximo en milisegundos.

Devuelve:

  • (Entero, Ver)

    O bien el valor máximo de tiempo de espera en ms o un nuevo View.

Desde:

  • 2.1.0



632
633
634
# Archivo 'lib/mongo/collection/view/readable.rb', línea 632

def max_await_time_ms(máximo = nulo)
  configurar(; tiempo_máximo_espera_ms, máximo)
end

#max_scan(value = nil) ⇒ Entero, Ver

Obsoleto.

Esta opción se encuentra obsoleta a partir de la versión del servidor MongoDB 4.0.

Establece el número máximo de documentos para escanear.

Ejemplos:

Establecer el valor máximo de escaneo.

view.max_scan(1000)

Parámetros:

  • Valor (Entero) (predeterminado: nulo)

    El número máximo a escanear.

Devuelve:

  • (Entero, Ver)

    El valor o un nuevo View.

Desde:

  • 2.0.0



441
442
443
# Archivo 'lib/mongo/collection/view/readable.rb', línea 441

def max_scan(Valor = nulo)
  configurar(:máximo_escaneo, Valor)
end

#max_time_ms(max = nil) ⇒ Integer, Ver

Un límite de tiempo acumulativo en milisegundos para procesar operaciones en un cursor.

Ejemplos:

Establece el valor máximo de tiempo en ms.

view.max_time_ms(500)

Parámetros:

  • máximo (Entero) (predeterminado: nulo)

    El tiempo máximo en milisegundos.

Devuelve:

  • (Entero, Ver)

    O bien el valor de tiempo máximo ms o uno nuevo View.

Desde:

  • 2.1.0



646
647
648
# Archivo 'lib/mongo/collection/view/readable.rb', línea 646

def tiempo máximo_ms(máximo = nulo)
  configurar(max_time_ms, máximo)
end

#max_value(valor = nil) ⇒ Hash, Ver

Establezca el valor máximo para buscar.

Ejemplos:

Establece el valor máximo.

view.max_value(_id: 1)

Parámetros:

  • Valor (Hash) (predeterminado: nulo)

    El campo máximo y el valor.

Devuelve:

  • (Hash, Ver)

    El valor o un nuevo View.

Desde:

  • 2.1.0



455
456
457
# Archivo 'lib/mongo/collection/view/readable.rb', línea 455

def valor máximo(Valor = nulo)
  configurar(:valor máximo, Valor)
end

#min_value(valor = nulo) ⇒ Hash, Vista

Establezca el valor mínimo para buscar.

Ejemplos:

Establezca el valor mínimo.

view.min_value(_id: 1)

Parámetros:

  • Valor (Hash) (predeterminado: nulo)

    El campo y valor mínimo.

Devuelve:

  • (Hash, Ver)

    El valor o un nuevo View.

Desde:

  • 2.1.0



469
470
471
# Archivo 'lib/mongo/collection/view/readable.rb', línea 469

def min_value(Valor = nulo)
  configurar(:min_value, Valor)
end

#modifiers(doc = nil) ⇒ Hash, View

Si se llama sin argumentos o con un argumento nulo, devuelve los modificadores del servidor heredados (OP_QUERY) para la vista actual. Si se llama con un argumento que no sea nulo, y que debe ser un Hash o una subclase, fusiona los modificadores proporcionados en la vista actual. Tanto las claves de tipo string como de tipo símbolo se permiten en el hash de entrada.

Ejemplos:

Set the modifiers document.

view.modifiers(:$orderby => Mongo::Index::ASCENDING)

Parámetros:

  • doc (Hash) (predeterminado: nulo)

    The modifiers document.

Devuelve:

  • (Hash, Ver)

    Ya sea el documento de modificadores o un nuevo View.

Desde:

  • 2.1.0



613
614
615
616
617
618
619
# Archivo 'lib/mongo/collection/view/readable.rb', línea 613

def modifiers(doc = nulo)
  si doc.nil?
    Operación::buscar::desarrolladores::Modifiers.map_server_modifiers(opciones)
  else
    Nuevo(opciones.fusionar(Operación::buscar::desarrolladores::Modifiers.map_driver_options(BSON::Documento.Nuevo(doc))))
  end
end

#no_cursor_timeoutView

El servidor normalmente desactiva el tiempo de espera de los cursores inactivos tras un período de inactividad (10 minutos) para evitar el uso excesivo de memoria. Configure esta opción para evitarlo.

Ejemplos:

Configura el cursor para que no agote el tiempo de espera.

view.no_cursor_timeout

Devuelve:

  • (Vista) -

    La nueva vista.

Desde:

  • 2.0.0



482
483
484
# Archivo 'lib/mongo/collection/view/readable.rb', línea 482

def no_cursor_timeout
  configurar(:no_cursor_timeout, true)
end

#parallel_scan(cursor_count, options = {}) ⇒ objeto

Desde:

  • 2.0.0



702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
# Archivo 'lib/mongo/collection/view/readable.rb', línea 702

def escaneo paralelo(cursor_count, opciones = {})
  si opciones[:: sesión]
    # La sesión sería sobrescrita por la presente en +opciones+ más adelante.
    sesión = Cliente.get_session(@options)
  else
    sesión = nulo
  end
  Server = selector_de_servidor.seleccionar_servidor(clúster, nulo, sesión)
  especulación = {
    nombre_coll: Colección.Nombre,
    nombre_base_datos: database.Nombre,
    recuento_de_cursor: cursor_count,
    read_concern: leer_preocupación,
    sesión: sesión,
  }.update(opciones)
  sesión = especulación[:: sesión]
  op = Operación::ParallelScan.Nuevo(especulación)
  # Tenga en cuenta que el objeto de contexto no debe reutilizarse para posteriores
  #Obtener más operaciones.
  context = Operación::Context.Nuevo(cliente: Cliente, sesión: sesión)
  Resultado = op.ejecutar(Server, context: context)
  Resultado.cursor_ids.map hacer |cursor_id|
    especulación = {
      cursor_id: cursor_id,
      nombre_coll: Colección.Nombre,
      nombre_base_datos: database.Nombre,
      sesión: sesión,
      batch_size: tamaño del lote,
      to_return: 0,
      # No se está pasando max_time_ms aquí, ¿asumo que intencionalmente?
    }
    op = Operación::Obtener más.Nuevo(especulación)
    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      id_global_de_conexión: Resultado.connection_global_id,
    )
    Resultado = si Server.load_balancer?
               # La conexión se verificará cuando se termine con el cursor.
               Conexión = Server.group.check_out(context: context)
               op.ejecutar_con_conexión(Conexión, context: context)
             else
               op.ejecutar(Server, context: context)
             end
    Cursor.Nuevo(sí mismo, Resultado, Server, sesión: sesión)
  end
end

#proyección(documento = nil) ⇒ Hash, Ver

Nota:

Un valor de 0 excluye un campo del documento. Un valor de 1 lo incluye. Todos los valores deben ser 0 o 1, excepto el valor _id. El campo _id se incluye por defecto. Debe excluirse explícitamente.

Los campos que se deben incluir o excluir de cada documento en el conjunto de resultados.

Ejemplos:

Establece los campos para incluir o excluir.

view.projection(name: 1)

Parámetros:

  • Documento (Hash) (predeterminado: nulo)

    El campo y 1 o 0, para incluirlo o excluirlo.

Devuelve:

  • (Hash, Ver)

    O los campos o un nuevo View.

Desde:

  • 2.0.0



500
501
502
503
# Archivo 'lib/mongo/collection/view/readable.rb', línea 500

def proyección(Documento = nulo)
  validate_doc!(Documento) si Documento
  configurar(:proyección, Documento)
end

#leer(valor = nulo) ⇒ Símbolo, Vista

Nota:

Si no se especifica ninguno para la query, se utilizará la preferencia de lectura de la colección.

La preferencia de lectura que se utilizará para la query.

Parámetros:

  • Valor (Hash) (predeterminado: nulo)

    El modo de preferencia de lectura que se debe utilizar para la query.

Devuelve:

  • (Símbolo, Vista)

    O bien la preferencia de lectura o un nuevo View.

Desde:

  • 2.0.0



516
517
518
519
# Archivo 'lib/mongo/collection/view/readable.rb', línea 516

def Lea(Valor = nulo)
  return read_preference si Valor.nil?
  configurar(:leer, Valor)
end

#read_concernObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



674
675
676
677
678
679
680
# Archivo 'lib/mongo/collection/view/readable.rb', línea 674

def leer_preocupación
  si opciones[:: sesión] && opciones[:: sesión].en_transacción?
    opciones[:: sesión].enviar(:txn_leer_preocupación) || Colección.Cliente.leer_preocupación
  else
    Colección.leer_preocupación
  end
end

#read_preferenceObjeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Desde:

  • 2.0.0



683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
# Archivo 'lib/mongo/collection/view/readable.rb', línea 683

def read_preference
  @read_preference ||= begin
    # La preferencia de lectura de la operación siempre se respeta, y tiene la
    # Máxima prioridad. Si estamos en una transacción, miramos
    # preferencia de lectura de transacción y por defecto al cliente, omitiendo
    # preferencia de lectura de la colección. Si no estamos en transacción
    # observa la preferencia de lectura de la colección, que por defecto es el cliente.
    rp = si opciones[:leer]
      opciones[:leer]
    elsif opciones[:: sesión] && opciones[:: sesión].en_transacción?
      opciones[:: sesión].preferencia_de_lectura_txn || Colección.Cliente.read_preference
    else
      Colección.read_preference
    end
    Lint.validar_preferencia_de_lectura_de_subrayado(rp)
    rp
  end
end

#return_key(valor = nulo) ⇒ verdadero,...

Establezca si desea devolver solo el campo o los campos indexados.

Ejemplos:

Establecer el valor clave de retorno.

view.return_key(true)

Parámetros:

  • Valor (verdadero, falso) (predeterminado: nulo)

    El valor de la tecla de retorno.

Devuelve:

  • (verdadero, falso, Ver)

    El valor o un nuevo View.

Desde:

  • 2.1.0



531
532
533
# Archivo 'lib/mongo/collection/view/readable.rb', línea 531

def tecla de retorno(Valor = nulo)
  configurar(:return_key, Valor)
end

#show_disk_loc(value = nil) ⇒ true, ... También conocido como: show_record_id

Establece si se debe mostrar la ubicación del disco para cada documento.

Ejemplos:

Establecer la opción para mostrar la ubicación del disco.

view.show_disk_loc(true)

Parámetros:

  • Valor (verdadero, falso) (predeterminado: nulo)

    El valor para el campo.

Devuelve:

  • (verdadero, falso, Ver)

    O bien el valor o un nuevo View.

Desde:

  • 2.0.0



546
547
548
# Archivo 'lib/mongo/collection/view/readable.rb', línea 546

def show_disk_loc(Valor = nulo)
  configurar(:show_disk_loc, Valor)
end

#skip(número = nil) ⇒ Integer, View

El número de docs que se deben omitir antes de mostrar resultados.

Ejemplos:

Establezca el número a omitir.

view.skip(10)

Parámetros:

  • Número (Entero) (predeterminado: nulo)

    Número de documentos a omitir.

Devuelve:

  • (Entero, Ver)

    O bien el valor de omisión o un nuevo View.

Desde:

  • 2.0.0



562
563
564
# Archivo 'lib/mongo/collection/view/readable.rb', línea 562

def Omitir(Número = nulo)
  configurar(Omitir, Número)
end

#snapshot(value = nil) ⇒ objeto

Obsoleto.

Esta opción se encuentra obsoleta a partir de la versión del servidor MongoDB 4.0.

Nota:

Cuando se establece como verdadero, evita que los documentos se devuelvan más de una vez.

Establece el valor de snapshot para la vista.

Ejemplos:

Establezca el valor del snapshot.

view.snapshot(true)

Parámetros:

  • Valor (verdadero, falso) (predeterminado: nulo)

    El valor del snapshot.

Desde:

  • 2.0.0



580
581
582
# Archivo 'lib/mongo/collection/view/readable.rb', línea 580

def snapshot(Valor = nulo)
  configurar(snapshot, Valor)
end

#sort(spec = nulo) ⇒ Hash, Vista

Los pares de clave y dirección por los que se ordenará el conjunto de resultados.

Ejemplos:

Establecer los criterios de ordenación

view.sort(name: -1)

Parámetros:

  • especulación (Hash) (predeterminado: nulo)

    Los atributos y las direcciones por las que ordenar.

Devuelve:

  • (Hash, Ver)

    Puede ser la configuración de clasificación o un nuevo View.

Desde:

  • 2.0.0



595
596
597
# Archivo 'lib/mongo/collection/view/readable.rb', línea 595

def sort(especulación = nulo)
  configurar(:sort, especulación)
end

#timeout_ms(timeout_ms = nil) ⇒ Integer, View

El tiempo de espera por operación en milisegundos. Debe ser un número entero positivo.

Parámetros:

  • timeout_ms (Entero) (predeterminado: nulo)

    Valor de tiempo de espera.

Devuelve:

  • (Entero, Ver)

    Ya sea el valor timeout_ms o un nuevo View.

Desde:

  • 2.0.0



669
670
671
# Archivo 'lib/mongo/collection/view/readable.rb', línea 669

def timeout_ms(timeout_ms = nulo)
  configurar(:timeout_ms, timeout_ms)
end