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

Incluido en:
Mongo::colección::View
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

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

Ejemplos:

Agrupar documentos.

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

Parámetros:

  • pipeline (arreglo<Hash>)

    La pipeline de agregación.

  • opciones (encriptada) (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 (Integer)

    El número de documentos a devolver por agrupar.

  • :evitar_validación_del_documento (verdadero, falso)

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

  • intercalación (encriptada)

    La intercalación para usar.

  • :comment (objeto)

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

  • :hint (string)

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

  • :let (encriptada)

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

  • max_time_ms (Integer)

    La cantidad máxima de tiempo en milisegundos para permitir que la agregación se ejecute. Esta opción está obsoleta, utiliza :timeout_ms en su lugar.

  • :: sesión (Sesión)

    La sesión para usar.

  • :timeout_ms (Integer)

    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



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

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.
  QueryCache.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:

  • (Ver)

    La nueva vista.

Desde:

  • 2.0.0



77
78
79
# Archivo 'lib/mongo/collection/view/readable.rb', línea 77

def allow_disk_use
  Configurar(permite_uso_de_disco, true)
end

#allow_partial_resultsVer

Permite que la query obtenga resultados parciales si algunas particiones están fuera de servicio.

Ejemplos:

Permitir resultados parciales.

view.allow_partial_results

Devuelve:

  • (Ver)

    La nueva vista.

Desde:

  • 2.0.0



89
90
91
# Archivo 'lib/mongo/collection/view/readable.rb', línea 89

def allow_partial_results
  Configurar(permitir_resultados_parciales, true)
end

#await_dataVer

Indique al cursor de la consulta que permanezca abierto y espere a que lleguen datos.

Ejemplos:

Espere datos en el cursor.

view.await_data

Devuelve:

  • (Ver)

    La nueva vista.

Desde:

  • 2.0.0



101
102
103
# Archivo 'lib/mongo/collection/view/readable.rb', línea 101

def await_data
  Configurar(Esperando datos..., true)
end

#batch_size(batch_size = nil) ⇒ Integer, Ver

Nota:

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

El número de documentos devueltos en cada lote de resultados de MongoDB.

Ejemplos:

Establece el tamaño del lote.

view.batch_size(5)

Parámetros:

  • batch_size (Integer) (valor por defecto: nil)

    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



118
119
120
# Archivo 'lib/mongo/collection/view/readable.rb', línea 118

def batch_size(batch_size = nulo)
  Configurar(:batch_size, batch_size)
end

#comentario(comentario = nil) ⇒ String, Ver

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) (valor por defecto: nil)

    El comentario que se asociará con la query.

Devuelve:

  • (String, Ver)

    O el comentario o un nuevo View.

Desde:

  • 2.0.0



136
137
138
# Archivo 'lib/mongo/collection/view/readable.rb', línea 136

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
* $near should be replaced with $geoWithin with $center
* $nearSphere should be replaced with $geoWithin with $centerSphere

Obtén un recuento de los documentos coincidentes en la colección.

Ejemplos:

Obtén el número de documentos en la colección.

collection_view.count

Parámetros:

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

    Opciones para la operación.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • Omitir (Integer)

    El número de documentos que se deben omitir.

  • :hint (encriptada)

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

  • :limit (Integer)

    Número máximo de Docs a contar.

  • max_time_ms (Integer)

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

  • :leer (encriptada)

    Las opciones de preferencia de lectura.

  • intercalación (encriptada)

    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



172
173
174
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
213
# Archivo 'lib/mongo/collection/view/readable.rb', línea 172

def count(opciones = {})
  opciones = @options.fusionar(opciones) a menos que mongo.broken_view_options
  cmd = { conteo: Colección.Nombre, query: filtro }
  cmd[Omitir] = opciones[Omitir] si opciones[Omitir]
  cmd[:hint] = opciones[:hint] si opciones[:hint]
  cmd[:limit] = opciones[:limit] si opciones[:limit]
  si read_concern
    cmd[Preocupación de lectura] = opciones::Mapeador.transform_values_to_strings(
      read_concern
    )
  end
  cmd[Tiempo máximo en milisegundos (:maxTimeMS)] = opciones[max_time_ms] si opciones[max_time_ms]
  mongo::Lint.validate_underscore_read_preference(opciones[:leer])
  read_pref = opciones[:leer] || read_preference
  selector = ServerSelector.Obtener(read_pref || selector_de_servidor)
  con_sesión(opciones) hacer |sesión|
    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      operation_timeouts: operation_timeouts(opciones)
    )
    Operación = Operación::count.Nuevo(
      selector: cmd,
      db_name: database.Nombre,
      opciones: { limit: -1 },
      leer: read_pref,
      sesión: sesión,
      # Por alguna razón, la intercalación fue históricamente aceptada como una
      # string key. Ten en cuenta que esto no está documentado como uso válido.
      intercalación: opciones[intercalación] || opciones['intercalación'] || intercalación,
      comment: opciones[:comment]
    )
    trazador.trace_operation(Operación, context) hacer
      read_with_retry(sesión, selector, context) hacer |Server|
        Operación.ejecutar(
          Server,
          context: context
        )
      end.n.to_i
    end
  end
end

#count_documents(opts = {}) ⇒ Integer

Obtén un recuento de los documentos coincidentes en la colección.

Ejemplos:

Obtén el número de documentos en la colección.

collection_view.count

Parámetros:

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

    Opciones para la operación.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • Omitir (Integer)

    El número de documentos que se deben omitir.

  • :hint (encriptada)

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

  • :limit (Integer)

    Número máximo de Docs a contar.

  • max_time_ms (Integer)

    La cantidad máxima de tiempo para permitir que el comando se ejecute. Esta opción está obsoleta, utiliza :timeout_ms en su lugar.

  • :leer (encriptada)

    Las opciones de preferencia de lectura.

  • intercalación (encriptada)

    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.6.0



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

def contar_documentos(opciones = {})
  opciones = @options.fusionar(opciones) a menos que mongo.broken_view_options
  pipeline = [ {    
         
         
               

          
    

     
     

  
' $match ': filtro } ] pipeline << { ' $skip ': opts [:skip ] } if opts [:skip ] pipeline << { ' $limit ': opts [:limit ] } if opts [:limit ] pipeline << { ' $group ': { _id: 1, n: { ' $sum ': 1opts = opts. slice (:hint,:max_time_ms,:read,:collation,:session,:comment,:timeout_ms ) opts [:collation ] ||= collation first = aggregate ( pipeline, opts ). first return0unless first first [ ' n ' ]. to_i end

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

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

Ejemplos:

Configura el tipo de cursor.

view.cursor_type(:tailable)

Parámetros:

  • tipo (:tailable, :tailable_await) (valor por defecto: nil)

    El tipo de cursor.

Devuelve:

  • (:tailable, :tailable_await, Ver)

    Ya sea la configuración del tipo de cursor o un nuevo View.

Desde:

  • 2.3.0



665
666
667
# Archivo 'lib/mongo/collection/view/readable.rb', línea 665

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 (String, Símbolo)

    El nombre del campo.

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

    Opciones para el comando distinct.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • max_time_ms (Integer)

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

  • :leer (encriptada)

    Las opciones de preferencia de lectura.

  • intercalación (encriptada)

    La intercalación para usar.

Devuelve:

  • (arreglo<Object>)

    La lista de valores distintos.

Aumenta:

  • (ArgumentError)

Desde:

  • 2.0.0



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
383
384
385
386
# Archivo 'lib/mongo/collection/view/readable.rb', línea 344

def distinct(field_name, opciones = {})
  propagar ArgumentError, 'El nombre del campo para la operación distinct no debe ser nulo' si field_name.nil?

  opciones = @options.fusionar(opciones) a menos que mongo.broken_view_options
  cmd = { distinto: Colección.Nombre,
          clave: field_name.to_s,
          query: filtro, }
  cmd[Tiempo máximo en milisegundos (:maxTimeMS)] = opciones[max_time_ms] si opciones[max_time_ms]
  si read_concern
    cmd[Preocupación de lectura] = opciones::Mapeador.transform_values_to_strings(
      read_concern
    )
  end
  mongo::Lint.validate_underscore_read_preference(opciones[:leer])
  read_pref = opciones[:leer] || read_preference
  selector = ServerSelector.Obtener(read_pref || selector_de_servidor)
  con_sesión(opciones) hacer |sesión|
    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      operation_timeouts: operation_timeouts(opciones)
    )
    Operación = Operación::distinct.Nuevo(
      selector: cmd,
      db_name: database.Nombre,
      opciones: { limit: -1 },
      leer: read_pref,
      sesión: sesión,
      comment: opciones[:comment],
      # Por alguna razón, la intercalación fue históricamente aceptada como una
      # string key. Ten en cuenta que esto no está documentado como uso válido.
      intercalación: opciones[intercalación] || opciones['intercalación'] || intercalación
    )
    trazador.trace_operation(Operación, context) hacer
      read_with_retry(sesión, selector, context) hacer |Server|
        Operación.ejecutar(
          Server,
          context: context
        )
      end.primero['values']
    end
  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:

Obtén el número de documentos en la colección.

collection_view.estimated_document_count

Parámetros:

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

    Opciones para la operación.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • max_time_ms (Integer)

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

  • :leer (encriptada)

    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



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
324
# Archivo 'lib/mongo/collection/view/readable.rb', línea 278

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

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

  opciones = @options.fusionar(opciones) a menos que mongo.broken_view_options
  mongo::Lint.validate_underscore_read_preference(opciones[:leer])
  read_pref = opciones[:leer] || read_preference
  selector = ServerSelector.Obtener(read_pref || selector_de_servidor)
  con_sesión(opciones) hacer |sesión|
    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      operation_timeouts: operation_timeouts(opciones)
    )
    cmd = { conteo: Colección.Nombre }
    cmd[Tiempo máximo en milisegundos (:maxTimeMS)] = opciones[max_time_ms] si opciones[max_time_ms]
    cmd[Preocupación de lectura] = opciones::Mapeador.transform_values_to_strings(read_concern) si read_concern
    Operación = Operación::count.Nuevo(
      selector: cmd,
      db_name: database.Nombre,
      leer: read_pref,
      sesión: sesión,
      comment: opciones[:comment]
    )
    trazador.trace_operation(Operación, context, op_name: 'estimatedDocumentCount') hacer
      read_with_retry(sesión, selector, context) hacer |Server|
        Resultado = Operación.ejecutar(Server, context: context)
        Resultado.n.to_i
      end
    rescate Error::OperationFailure::Familia => e
      propagar a menos que e.Código == 26

      # NamespaceNotFound
      # Esto solo debe ocurrir con la vía de la pipeline de agregación
      # (servidor 4.9+). Los servidores anteriores deberían devolver 0 para inexistente
      # colección.
      0
    end
  end
end

#hint(hint = nil) ⇒ Hash, View

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

Ejemplos:

Establezca la sugerencia de índice.

view.hint(name: 1)

Parámetros:

  • hint (encriptada) (valor por defecto: nil)

    El índice que se utilizará para la query.

Devuelve:

  • (Hash, Ver)

    Utilice la sugerencia o una nueva View.

Desde:

  • 2.0.0



398
399
400
# Archivo 'lib/mongo/collection/view/readable.rb', línea 398

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 (Integer) (valor por defecto: nil)

    El número de Docs a devolver.

Devuelve:

  • (Entero, Ver)

    Puede ser el límite o un nuevo View.

Desde:

  • 2.0.0



412
413
414
# Archivo 'lib/mongo/collection/view/readable.rb', línea 412

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

#map_reduce(map, reduce, options = {}) ⇒ 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 (encriptada) (por defecto: {})

    Las opciones de map/reduce.

Devuelve:

  • (MapReduce)

    El contenedor de map reduce.

Desde:

  • 2.0.0



428
429
430
# Archivo 'lib/mongo/collection/view/readable.rb', línea 428

def map_reduce(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 el procesamiento de operaciones adicionales 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 (Integer) (valor por defecto: nil)

    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



637
638
639
# Archivo 'lib/mongo/collection/view/readable.rb', línea 637

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 (Integer) (valor por defecto: nil)

    El número máximo para escanear.

Devuelve:

  • (Entero, Ver)

    El valor o un nuevo View.

Desde:

  • 2.0.0



445
446
447
# Archivo 'lib/mongo/collection/view/readable.rb', línea 445

def max_scan(Valor = nulo)
  Configurar(max_scan, Valor)
end

#max_time_ms(max = nil) ⇒ Integer, Ver

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

Ejemplos:

Establece el valor máximo de tiempo en ms.

view.max_time_ms(500)

Parámetros:

  • máximo (Integer) (valor por defecto: nil)

    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



651
652
653
# Archivo 'lib/mongo/collection/view/readable.rb', línea 651

def max_time_ms(máximo = nulo)
  Configurar(max_time_ms, máximo)
end

#max_value(valor = nil) ⇒ Hash, Ver

Establece el valor máximo a buscar.

Ejemplos:

Establece el valor máximo.

view.max_value(_id: 1)

Parámetros:

  • Valor (encriptada) (valor por defecto: nil)

    El campo máximo y el valor.

Devuelve:

  • (Hash, Ver)

    El valor o un nuevo View.

Desde:

  • 2.1.0



459
460
461
# Archivo 'lib/mongo/collection/view/readable.rb', línea 459

def max_value(Valor = nulo)
  Configurar(valor_máximo, Valor)
end

#min_value(valor = nil) ⇒ Hash, Ver

Establezca el valor mínimo para buscar.

Ejemplos:

Establecer el valor mínimo.

view.min_value(_id: 1)

Parámetros:

  • Valor (encriptada) (valor por defecto: nil)

    El campo y valor mínimo.

Devuelve:

  • (Hash, Ver)

    El valor o un nuevo View.

Desde:

  • 2.1.0



473
474
475
# Archivo 'lib/mongo/collection/view/readable.rb', línea 473

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 (encriptada) (valor por defecto: nil)

    The modifiers document.

Devuelve:

  • (Hash, Ver)

    Ya sea el documento de modificadores o un nuevo View.

Desde:

  • 2.1.0



618
619
620
621
622
623
624
# Archivo 'lib/mongo/collection/view/readable.rb', línea 618

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 cierra cursores inactivos después de 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:

  • (Ver)

    La nueva vista.

Desde:

  • 2.0.0



486
487
488
# Archivo 'lib/mongo/collection/view/readable.rb', línea 486

def no_cursor_timeout
  Configurar(:no_cursor_timeout, true)
end

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

Desde:

  • 2.0.0



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
749
750
# Archivo 'lib/mongo/collection/view/readable.rb', línea 707

def exploración paralela(cursor_count, opciones = {})
  sesión = si opciones[:: sesión]
              # La sesión sería sobrescrita por la presente en +opciones+ más adelante.
              Cliente.get_session(@options)
            end
  Server = selector_de_servidor.select_server(clúster, nulo, sesión)
  especificación = {
    coll_name: Colección.Nombre,
    db_name: database.Nombre,
    recuento_de_cursor: cursor_count,
    read_concern: read_concern,
    sesión: sesión,
  }.update(opciones)
  sesión = especificación[:: sesión]
  op = Operación::ParallelScan.Nuevo(especificación)
  # Tenga en cuenta que el objeto de contexto no debe reutilizarse para posteriores
  # Operaciones GetMore.
  context = Operación::Context.Nuevo(cliente: Cliente, sesión: sesión)
  Resultado = op.ejecutar(Server, context: context)
  Resultado.cursor_ids.map hacer |cursor_id|
    especificación = {
      cursor_id: cursor_id,
      coll_name: Colección.Nombre,
      db_name: database.Nombre,
      sesión: sesión,
      batch_size: batch_size,
      # No se está pasando max_time_ms aquí, ¿asumo que intencionalmente?
    }
    op = Operación::Obtener más.Nuevo(especificación)
    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      connection_global_id: 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.execute_with_connection(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, a excepción del 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 (encriptada) (valor por defecto: nil)

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

Devuelve:

  • (Hash, Ver)

    O los campos o un nuevo View.

Desde:

  • 2.0.0



504
505
506
507
# Archivo 'lib/mongo/collection/view/readable.rb', línea 504

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

#read(valor = nil) ⇒ Symbol, View

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 (encriptada) (valor por defecto: nil)

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

Devuelve:

  • (Símbolo, Vista)

    Ya sea la preferencia de lectura o un nuevo View.

Desde:

  • 2.0.0



520
521
522
523
524
# Archivo 'lib/mongo/collection/view/readable.rb', línea 520

def Lea(Valor = nulo)
  return read_preference si Valor.nil?

  Configurar(:leer, Valor)
end

#read_concernobjeto

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.

Desde:

  • 2.0.0



679
680
681
682
683
684
685
# Archivo 'lib/mongo/collection/view/readable.rb', línea 679

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

#read_preferenceobjeto

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.

Desde:

  • 2.0.0



688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
# Archivo 'lib/mongo/collection/view/readable.rb', línea 688

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.validate_underscore_read_preference(rp)
    rp
  end
end

#return_key(value = nil) ⇒ true, ...

Define si se debe devolver solo el campo o campos indexados.

Ejemplos:

Establecer el valor clave de retorno.

view.return_key(true)

Parámetros:

  • Valor (verdadero, falso) (valor por defecto: nil)

    El valor de la tecla de retorno.

Devuelve:

  • (verdadero, falso, Ver)

    El valor o un nuevo View.

Desde:

  • 2.1.0



536
537
538
# Archivo 'lib/mongo/collection/view/readable.rb', línea 536

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 de mostrar la ubicación del disco.

view.show_disk_loc(true)

Parámetros:

  • Valor (verdadero, falso) (valor por defecto: nil)

    El valor para el campo.

Devuelve:

  • (verdadero, falso, Ver)

    O bien el valor o un nuevo View.

Desde:

  • 2.0.0



551
552
553
# Archivo 'lib/mongo/collection/view/readable.rb', línea 551

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 (Integer) (valor por defecto: nil)

    Número de Docs que se deben saltar.

Devuelve:

  • (Entero, Ver)

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

Desde:

  • 2.0.0



567
568
569
# Archivo 'lib/mongo/collection/view/readable.rb', línea 567

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 configura como verdadero, impide 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) (valor por defecto: nil)

    El valor del snapshot.

Desde:

  • 2.0.0



585
586
587
# Archivo 'lib/mongo/collection/view/readable.rb', línea 585

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

#sort(spec = nil) ⇒ Hash, Ver

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:

  • especificación (encriptada) (valor por defecto: nil)

    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



600
601
602
# Archivo 'lib/mongo/collection/view/readable.rb', línea 600

def sort(especificación = nulo)
  Configurar(:sort, especificació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 (Integer) (valor por defecto: nil)

    Valor de tiempo de espera.

Devuelve:

  • (Entero, Ver)

    Ya sea el valor timeout_ms o un nuevo View.

Desde:

  • 2.0.0



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

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