Clase: Mongo::Collection

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Asistentes, QueryableEncryption, Retryable
Definido en:
lib/mongo/collection.rb,
lib/mongo/collection/view.rb,
lib/mongo/collection/helpers.rb,
lib/mongo/collection/view/iterable.rb,
lib/mongo/collection/view/readable.rb,
lib/mongo/collection/view/writable.rb,
lib/mongo/collection/view/immutable.rb,
lib/mongo/collection/view/map_reduce.rb,
lib/mongo/collection/view/aggregation.rb,
lib/mongo/collection/view/explainable.rb,
lib/mongo/collection/view/change_stream.rb,
lib/mongo/collection/queryable_encryption.rb,
lib/mongo/collection/view/builder/map_reduce.rb,
lib/mongo/collection/view/builder/aggregation.rb,
lib/mongo/collection/view/aggregation/behavior.rb,
lib/mongo/collection/view/change_stream/retryable.rb

Overview

Representa una colección en la base de datos y operaciones que se pueden aplicar directamente a una.

Desde:

  • 2.0.0

Definido bajo Namespace

Modules: Asistentes, QueryableEncryption Clases: Ver

Colapso delresumen constante

CAPPED =

La opción limitada.

Desde:

  • 2.1.0

'tapado '.freeze
NS =

La constante del campo ns.

Desde:

  • 2.1.0

'ns'.freeze
CAMBIABLE_OPTIONS =

Opciones que se pueden actualizar en una nueva instancia de la colección a través del método #with.

Desde:

  • 2.1.0

[ :leer, :read_concern, guardar, :escribir_preocupación ].freeze
CREATE_COLLECTION_OPTIONS =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Opciones mapa para transformar opciones de creación de colección.

Desde:

  • 2.0.0

{
  series_temporales => :serie temporal,
  expire_after => expireAfterSeconds,
  :clustered_index => :clusteredIndex,
  Imágenes previas y posteriores de :change_stream => :cambiar imágenes previas y posteriores del flujo,
  :encrypted_fields => camposCifrados,
  :validator => :validator,
  :view_on => :viewOn
}

Constantes incluidas desde QueryableEncryption

QueryableEncryption::QE2_MIN_WIRE_VERSION

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Métodos incluidos de Helpers

#do_drop

Métodos incluidos en QueryableEncryption

#maybe_create_qe_collections, #maybe_drop_emm_collections

Métodos incluidos en Retryable

#read_worker, #select_server, #write_worker

Detalles del constructor

#initialize(base de datos, name, options = {}) ⇒ Collection

Instancie una nueva colección.

Ejemplos:

Instancie una nueva colección.

Mongo::Collection.new(database, 'test')

Parámetros:

  • database (Mongo::Database)

    La base de datos de la colección.

  • Nombre (Cadena,Símbolo)

    El nombre de la colección.

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

    Las opciones de colección.

  • opta (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (options):

  • :read_concern (Hash)

    El hash de opciones de lectura se refiere a, con las siguientes claves opcionales:

    • :level: el nivel de preferencia de lectura como símbolo; valores válidos

      are *:local*, *:majority*, and *:snapshot*
      
  • :leer (Hash)

    Las opciones de preferencia de lectura. El hash puede tener los siguientes elementos:

    • :mode – preferencia de lectura especificada como un símbolo; los valores válidos son:primary,:primary_preferred,:secondary,:secondary_preferred y:nearest.

    • :tag_sets – una matriz de hashes.

    • :local_threshold.

  • :: sesión (Sesión)

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

  • tamaño: (Entero)

    El tamaño de la colección con tamaño fijo.

  • :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 el valor se hereda de la base de datos o del cliente.

Aumenta:

Desde:

  • 2.0.0



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# Archivo 'lib/mongo/collection.rb', línea 162

def inicializar(database, Nombre, opciones = {})
  propagar Error::InvalidCollectionName.Nuevo a menos que Nombre
  si opciones[guardar] && opciones[:escribir_preocupación] && opciones[guardar] != opciones[:escribir_preocupación]
    propagar ArgumentError, "Si :guardar y :write_concern se dan ambos, deben ser idénticos: #{options.inspect}"
  end
  @database = database
  @name = Nombre.to_s.freeze
  @options = opciones.dup
  @timeout_ms = opciones.borrar(:timeout_ms)
=begin Soporte de objetos WriteConcern
  si @options[:write_concern].is_a?(WriteConcern::Base)
    # Almacene la instancia en caché para que no tengamos que reconstruirla innecesariamente.
    @write_concern = @options[:write_concern]
    @options[:write_concern] = @write_concern.options
  end
=end
  @options.freeze
end

Detalles de los atributos de instancia

#databaseMongo::Database (readonly)

Devuelve la base de datos en la que reside la colección.

Devuelve:

Desde:

  • 2.0.0



46
47
48
# Archivo 'lib/mongo/collection.rb', línea 46

def database
  @database
end

#nombrestring (solo lectura)

Devuelve El nombre de la colección.

Devuelve:

  • (string)

    El nombre de la colección.

Desde:

  • 2.0.0



49
50
51
# Archivo 'lib/mongo/collection.rb', línea 49

def Nombre
  @name
end

#opcionesHash (solo lectura)

Devuelve las opciones de la colección.

Devuelve:

  • (encriptada)

    Las opciones de colección.

Desde:

  • 2.0.0



52
53
54
# Archivo 'lib/mongo/collection.rb', línea 52

def opciones
  @options
end

Detalles del método de instancia

#==(otro) ⇒ verdadero | falso

Comprueba si una colección es igual a otro objeto. Verificará la igualdad entre el nombre y la base de datos.

Ejemplos:

Comprobar igualdad de colección.

collection == other

Parámetros:

  • Otros (objeto)

    El objeto para comprobar.

Devuelve:

  • (true | false)

    Si los objetos son iguales.

Desde:

  • 2.0.0



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

def ==(Otros)
  return false a menos que Otros.is_a?(Colección)
  Nombre == Otros.Nombre && database == Otros.database && opciones == Otros.opciones
end

#aggregate(pipeline, options = {}) ⇒ View::agregación

Realiza una agregación en la colección.

Ejemplos:

Realizar una agregación.

collection.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 (true | false)

    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 (true | false)

    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)

    La cantidad máxima de tiempo permitida para que se ejecute la query, en milisegundos. Esta opción está obsoleta, utiliza :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.1.0



568
569
570
# Archivo 'lib/mongo/collection.rb', línea 568

def Agregar(pipeline, opciones = {})
  vista.Nuevo(sí mismo, {}, opciones).Agregar(pipeline, opciones)
end

#bulk_write(solicitudes, opciones = {}) ⇒ BulkWrite::Result

Ejecutar un lote de operaciones de escritura masiva.

Ejemplos:

Ejecutar una escritura masiva.

collection.bulk_write(operations, options)

Parámetros:

  • solicitud (Enumerable<Hash>)

    Las solicitudes de escritura masiva.

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

    Las opciones.

Opciones Hash (options):

  • :ordered (true | false)

    Si las operaciones deben ejecutarse en orden.

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern). Puede ser :w => Entero, :fsync => Booleano, :j => Booleano.

  • :omitir validación de documento (true | false)

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

  • :: sesión (Sesión)

    La sesión a utilizar para el conjunto de operaciones.

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

  • :let (Hash)

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

Devuelve:

Desde:

  • 2.0.0



942
943
944
# Archivo 'lib/mongo/collection.rb', línea 942

def bulk_write(solicitud, opciones = {})
  Guardado masivo.Nuevo(sí mismo, solicitud, opciones).ejecutar
end

#¿limitado?true | false

¿La colección tiene un límite?

Ejemplos:

¿La colección tiene un límite?

collection.capped?

Devuelve:

  • (true | false)

    Si la colección está limitada.

Desde:

  • 2.0.0



321
322
323
324
325
# Archivo 'lib/mongo/collection.rb', línea 321

def ¿limitado?
  database.list_collections(filtrar: { nombre: Nombre })
    .primero
    &.dig('options', CAPPADO) || false
end

#count(filter = nil, options = {}) ⇒ Integer

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

Obtiene un número estimado de documentos coincidentes en la colección.

Ejemplos:

Obtenga el recuento.

collection.count(name: 1)

Parámetros:

  • filtro (Hash) (predeterminado: nulo)

    Un filtro para hacer coincidir documentos.

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

    Las opciones de recuento.

Opciones Hash (options):

  • :hint (Hash)

    El índice a utilizar.

  • :limit (Entero)

    El número máximo de documentos que se deben contar.

  • max_time_ms (Entero)

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

  • Omitir (Entero)

    El número de documentos que se deben omitir antes de contar.

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :colación (Hash)

    La intercalación para usar.

  • :: sesión (Sesión)

    La sesión para usar.

  • :comment (Objeto)

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

  • :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:

  • (Número entero)

    El recuento de documentos.

Desde:

  • 2.1.0



685
686
687
# Archivo 'lib/mongo/collection.rb', línea 685

def count(filtro = nulo, opciones = {})
  vista.Nuevo(sí mismo, filtro || {}, opciones).count(opciones)
end

#count_documents(filtro = {}, options = {}) ⇒ Integer

Obtiene el número de documentos que coinciden con la query. A diferencia del método obsoleto #count, este devolverá el número exacto de documentos que coinciden con el filtro (o el número exacto de documentos en la colección, si no se proporciona un filtro) en lugar de una estimación.

Utilice #estimated_document_count para recuperar una estimación del número de documentos en la colección utilizando los metadatos de la colección.

Parámetros:

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

    Un filtro para hacer coincidir documentos.

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

    Opciones para la operación.

Opciones Hash (options):

  • 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)

    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 (Sesión)

    La sesión para usar.

  • :comment (Objeto)

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

  • :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:

  • (Número entero)

    El recuento de documentos.

Desde:

  • 2.6.0



719
720
721
# Archivo 'lib/mongo/collection.rb', línea 719

def contar_documentos(filtro = {}, opciones = {})
  vista.Nuevo(sí mismo, filtro, opciones).contar_documentos(opciones)
end

#crear(opts = {}) ⇒ Resultado

Forzar la creación de la colección en la base de datos.

Ejemplos:

Forzar la creación de la colección.

collection.create

Parámetros:

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

    Las opciones para la operación de creación.

Opciones Hash (opts):

  • capped (true | false)

    Crea una colección de tamaño fijo.

  • Imágenes previas y posteriores de :change_stream (Hash)

    Se utiliza para habilitar imágenes previas y posteriores en la colección creada. El hash puede contener los siguientes elementos:

    • :enabled – verdadero o falso.

  • :clustered_index (Hash)

    Crear un índice agrupado. Esta opción especifica cómo se agrupará esta colección según _id. El hash puede contener los siguientes elementos:

    • :key: el campo clave del índice agrupado. Debe establecerse en { _id: 1 }.

    • :unique – Debe establecerse en true. La colección no aceptará documentos insertados o actualizados donde el valor de clave de índice agrupado coincida con un valor existente en el índice.

    • :name – Opcional. Un nombre que identifica de manera única el índice agrupado.

  • :colación (Hash)

    La intercalación para usar al crear la colección. Esta opción no se enviará al servidor al llamar a los métodos de colección.

  • :encrypted_fields (Hash)

    Hash que describe campos cifrados para cifrado consultable.

  • expire_after (Entero)

    Un número que indica después de cuántos segundos se deben eliminar los datos antiguos de series de tiempo.

  • :máximo (Entero)

    El número máximo de documentos en una colección limitada. El límite de tamaño prevalece sobre el máximo.

  • pipeline (arreglo<Hash>)

    Un arreglo de etapas de pipeline. Se creará una vista aplicando esta pipeline a la colección o vista view_on.

  • :: sesión (Sesión)

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

  • tamaño: (Entero)

    El tamaño de la colección con tamaño fijo.

  • series_temporales (Hash)

    Crea una colección de series de tiempo. El hash puede tener los siguientes elementos:

    • :timeField – El nombre del campo que contiene la fecha en cada documento de la serie de tiempo.

    • :metaField – El nombre del campo que contiene los metadatos en cada documento de series de tiempo.

    • :granularity – Establezca la granularidad en el valor que más coincida con el intervalo de tiempo entre mediciones entrantes consecutivas. Los valores posibles son «segundos» (predeterminado), «minutos» y «horas».

  • :validator (Hash)

    Hash que describe las opciones de validación de documentos para la colección.

  • :view_on (Cadena)

    El nombre de la colección o vista de origen desde la que se creará una vista.

  • guardar (Hash)

    Obsoleto. Equivalente a la opción :write_concern.

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern). Puede ser :w => Integer | String, :fsync => booleano, :j => booleano.

Devuelve:

  • (Result)

    El resultado del comando.

Desde:

  • 2.0.0



382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
# Archivo 'lib/mongo/collection.rb', línea 382

def Cree(opta = {})
  # Pasar opciones de lectura al comando create causa que se rompa.
  # Filtra las opciones de lectura. La sesión también está excluida aquí ya que se obtiene
  # usado por la llamada a with_session y no debe ser parte de la
  # operación. Si se pasa a la operación, fallaría BSON
  # serialización.
  # TODO coloca la lista de opciones de lectura en una constante de nivel de clase cuando
  # descubrimos cuál es el conjunto completo de ellos.
  opciones = Picadillo[sí mismo.opciones.fusionar(opta).rechazar hacer |llave, Valor|
    %w(Lea read_preference leer_preocupación sesión).incluir?(llave.to_s)
  end]
  # Convertir las opciones de Ruby al estilo de servidor.
  CREATE_COLLECTION_OPTIONS.cada hacer |ruby_key, server_key|
    si opciones.key?(ruby_key)
      opciones[server_key] = opciones.borrar(ruby_key)
    end
  end
  operación = { crear: => Nombre }.fusionar(opciones)
  operación.borrar(guardar)
  operación.borrar(:escribir_preocupación)
  Cliente.enviar(:con_sesión, opta) hacer |sesión|
    escribir_preocupación = si opta[:escribir_preocupación]
      Nivel de confirmación de escritura (write concern).Obtener(opta[:escribir_preocupación])
    else
      sí mismo.escribir_preocupación
    end

    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión
    )
    maybe_create_qe_collections(opta[:encrypted_fields], Cliente, sesión) hacer |encrypted_fields|
      Operación::Crear.Nuevo(
        selector: operación,
        nombre_base_datos: database.Nombre,
        write_concern: escribir_preocupación,
        sesión: sesión,
        # Tenga en cuenta que estas son opciones de colección, la intercalación no lo es
        # tomado de las opciones pasadas al método de creación.
        intercalación: opciones[:colación] || opciones['intercalación'],
        campos_encriptados: encrypted_fields,
        validator: opciones[:validator],
      ).ejecutar(
        siguiente_principal(nulo, sesión),
        context: context
      )
    end
  end
end

#delete_many(filtro = nil, opciones = {}) ⇒ Result

Eliminar documentos de la colección.

Ejemplos:

Remover varios documentos de la colección.

collection.delete_many

Parámetros:

  • filtro (Hash) (predeterminado: nulo)

    El filtro a utilizar.

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

    Las opciones.

Opciones Hash (options):

  • :colación (Hash)

    La intercalación para usar.

  • :: sesión (Sesión)

    La sesión para usar.

  • :hint (Hash | String)

    El índice que se usará para esta operación. Puede especificarse como un Hash (por ejemplo, " { _id: 1 }) o una string (por ejemplo, “ID”).

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

  • :let (Hash)

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

Devuelve:

  • (Result)

    La respuesta de la base de datos.

Desde:

  • 2.1.0



994
995
996
# Archivo 'lib/mongo/collection.rb', línea 994

def borrar_varios(filtro = nulo, opciones = {})
  buscar(filtro, opciones).borrar_varios(opciones)
end

#delete_one(filtro = nulo, opciones = {}) ⇒ Resultado

Eliminar un documento de la colección.

Ejemplos:

Eliminar un solo documento de la colección.

collection.delete_one

Parámetros:

  • filtro (Hash) (predeterminado: nulo)

    El filtro a utilizar.

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

    Las opciones.

Opciones Hash (options):

  • :colación (Hash)

    La intercalación para usar.

  • :: sesión (Sesión)

    La sesión para usar.

  • :hint (Hash | String)

    El índice que se usará para esta operación. Puede especificarse como un Hash (por ejemplo, " { _id: 1 }) o una string (por ejemplo, “ID”).

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

  • :let (Hash)

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

Devuelve:

  • (Result)

    La respuesta de la base de datos.

Desde:

  • 2.1.0



968
969
970
# Archivo 'lib/mongo/collection.rb', línea 968

def delete_one(filtro = nulo, opciones = {})
  buscar(filtro, opciones).delete_one(opciones)
end

#distinto(nombre_del_campo, filtro = nulo, opciones = {}) ⇒ Matriz<Object>

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

Ejemplos:

Obtén los valores distintos.

collection.distinct('name')

Parámetros:

  • field_name (Símbolo, String)

    El nombre del campo.

  • filtro (Hash) (predeterminado: nulo)

    Los documentos de los que se recuperarán los valores distintos.

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

    Las opciones de comando distintas.

Opciones Hash (options):

  • max_time_ms (Entero)

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

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :colación (Hash)

    La intercalación para usar.

  • :: 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:

  • (arreglo<Object>)

    La lista de valores distintos.

Desde:

  • 2.1.0



771
772
773
# Archivo 'lib/mongo/collection.rb', línea 771

def distinct(field_name, filtro = nulo, opciones = {})
  vista.Nuevo(sí mismo, filtro || {}, opciones).distinct(field_name, opciones)
end

#descartar(opts = {}) ⇒ Result

Nota:

Se suprime un error devuelto si la colección no existe.

Eliminar la colección. También se eliminarán todos los índices asociados a ella, así como las colecciones de cifrado consultables asociadas.

Ejemplos:

Descarta la colección.

collection.drop

Parámetros:

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

    Las opciones para la operación de descartar.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • :: sesión (Sesión)

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

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern).

  • :encrypted_fields (Hash | nil)

    Hash de campos cifrados que se proporcionó al ayudante de colección 'crear'.

Devuelve:

  • (Result)

    El resultado del comando.

Desde:

  • 2.0.0



454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
# Archivo 'lib/mongo/collection.rb', línea 454

def descartar(opta = {})
  Cliente.con_sesión(opta) hacer |sesión|
    tal vez_dejar_colecciones_emm(opta[:encrypted_fields], Cliente, sesión) hacer
      temp_write_concern = escribir_preocupación
      escribir_preocupación = si opta[:escribir_preocupación]
        Nivel de confirmación de escritura (write concern).Obtener(opta[:escribir_preocupación])
      else
        temp_write_concern
      end
      context = Operación::Context.Nuevo(
        cliente: Cliente,
        sesión: sesión,
        operation_timeouts: tiempos de espera de operación(opta)
      )
      operación = Operación::Descartar.Nuevo({
        selector: { :gota => Nombre },
        nombre_base_datos: database.Nombre,
        write_concern: escribir_preocupación,
        sesión: sesión,
      })
      hacer_soltar(operación, sesión, context)
    end
  end
end

#estimated_document_count(opciones = {}) ⇒ Integer

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

Utilice #count_documents para recuperar el número exacto de documentos en la colección, o para contabilizar documentos que coincidan con un filtro.

Parámetros:

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

    Opciones para la operación.

Opciones Hash (options):

  • max_time_ms (Entero)

    La cantidad máxima de tiempo que se puede permitir que el comando se ejecute en el servidor.

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :comment (Objeto)

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

  • :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:

  • (Número entero)

    El recuento de documentos.

Desde:

  • 2.6.0



744
745
746
# Archivo 'lib/mongo/collection.rb', línea 744

def estimated_document_count(opciones = {})
  vista.Nuevo(sí mismo, {}, opciones).estimated_document_count(opciones)
end

#buscar(filtro = nulo, opciones = {}) ⇒ CollectionView

Buscar documentos en la colección.

Ejemplos:

Encuentre documentos en la colección mediante un selector.

collection.find(name: 1)

Obten todos los documentos en una colección.

collection.find

Parámetros:

  • filtro (Hash) (predeterminado: nulo)

    El filtro a usar en la función find.

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

    Las opciones para el find.

Opciones Hash (options):

  • permite_uso_de_disco (true | false)

    Cuando se establece en true, el servidor puede guardar datos temporales en el disco mientras ejecuta la operación de búsqueda. Esta opción solo está disponible en las versiones 4.4 y posteriores del servidor MongoDB.

  • permitir_resultados_parciales (true | false)

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

  • :batch_size (Entero)

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

  • :colación (Hash)

    La intercalación para usar.

  • :comment (Objeto)

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

  • tipo_de_cursor (:tailable,:tailable_await)

    El tipo de cursor a utilizar.

  • :limit (Entero)

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

  • max_time_ms (Entero)

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

  • :modifiers (Hash)

    Un documento que contiene metaoperadores que modifican la salida o el comportamiento de una query.

  • :no_cursor_timeout (true | false)

    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.

  • oplog_replay (true | false)

    Solo para uso interno de replicación. Las aplicaciones no deben establecer esta opción.

  • :proyección (Hash)

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

  • :: sesión (Sesión)

    La sesión para usar.

  • Omitir (Entero)

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

  • :sort (Hash)

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

  • :timeout_mode (:cursor_lifetime | :iteration)

    Cómo interpretar :timeout_ms (si se aplica a la vida útil del cursor o a cada iteración).

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

  • :let (Hash)

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

Devuelve:

  • (CollectionView)

    La vista de la colección.

Desde:

  • 2.0.0



532
533
534
# Archivo 'lib/mongo/collection.rb', línea 532

def buscar(filtro = nulo, opciones = {})
  vista.Nuevo(sí mismo, filtro || {}, opciones)
end

#find_one_and_delete(filtro, opciones = {}) ⇒ BSON::Document?

Encuentra un solo documento en la base de datos a través de findAndModify y lo elimina, devolviendo el documento original.

Ejemplos:

encontrar un documento y elimínalo.

collection.find_one_and_delete(name: 'test')

Parámetros:

  • filtro (encriptada)

    El filtro a utilizar.

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

    Las opciones.

Opciones Hash (options):

  • max_time_ms (Entero)

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

  • :proyección (Hash)

    Los campos que se deben incluir o excluir en el documento devuelto.

  • :sort (Hash)

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

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern). Por defecto es el nivel de confirmación de escritura (write concern) de la colección.

  • :colación (Hash)

    La intercalación para usar.

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

  • :hint (Hash | String)

    El índice que se usará para esta operación. Puede especificarse como un Hash (por ejemplo, " { _id: 1 }) o una string (por ejemplo, “ID”).

  • :let (Hash)

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

Devuelve:

  • (BSON::Document, nil)

    El documento, si se encuentra.

Desde:

  • 2.1.0



1167
1168
1169
# Archivo 'lib/mongo/collection.rb', línea 1167

def encontrar_uno_y_eliminar(filtro, opciones = {})
  buscar(filtro, opciones).encontrar_uno_y_eliminar(opciones)
end

#find_one_and_replace(filtro, reemplazo, opciones = {}) ⇒ BSON::Documento

Encuentra un solo documento y lo reemplaza, devolviendo el documento original a menos que se especifique lo contrario.

Ejemplos:

Busque un documento y reemplácelo, devolviendo el original.

collection.find_one_and_replace({ name: 'test' }, { name: 'test1' })

Encuentra un documento y reemplázalo, devolviendo el nuevo documento.

collection.find_one_and_replace({ name: 'test' }, { name: 'test1' }, :return_document => :after)

Parámetros:

  • filtro (encriptada)

    El filtro a utilizar.

  • sustitución (BSON::Document)

    El documento de reemplazo.

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

    Las opciones.

Opciones Hash (options):

  • max_time_ms (Entero)

    La cantidad máxima de tiempo que se puede ejecutar el comando en milisegundos.

  • :proyección (Hash)

    Los campos que se deben incluir o excluir en el documento devuelto.

  • :sort (Hash)

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

  • documento de retorno (Símbolo)

    Ya sea :before o :after.

  • inserción (true | false)

    Si hacer inserción o no cuando el documento no existe.

  • :omitir validación de documento (true | false)

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

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern). Por defecto es el nivel de confirmación de escritura (write concern) de la colección.

  • :colación (Hash)

    La intercalación para usar.

  • :: sesión (Sesión)

    La sesión para usar.

  • :hint (Hash | String)

    El índice que se usará para esta operación. Puede especificarse como un Hash (por ejemplo, " { _id: 1 }) o una string (por ejemplo, “ID”).

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

  • :let (Hash)

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

Devuelve:

  • (BSON::Document)

    El documento.

Desde:

  • 2.1.0



1253
1254
1255
# Archivo 'lib/mongo/collection.rb', línea 1253

def find_one_and_replace(filtro, sustitución, opciones = {})
  buscar(filtro, opciones).find_one_and_update(sustitución, opciones)
end

#find_one_and_update(filter, update, options = {}) ⇒ BSON::Document

Encuentra un único documento a través de findAndModify y lo actualiza, devolviendo el documento original a menos que se indique lo contrario.

Ejemplos:

Encuentra un documento y actualízalo, devolviendo el original.

collection.find_one_and_update({ name: 'test' }, { "$set" => { name: 'test1' }})

Encuentra un documento y actualízalo, devolviendo el documento actualizado.

collection.find_one_and_update({ name: 'test' }, { "$set" => { name: 'test1' }}, :return_document => :after)

Parámetros:

  • filtro (encriptada)

    El filtro a utilizar.

  • update (Hash | Matriz<Hash>)

    El documento o canalización de actualización.

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

    Las opciones.

Opciones Hash (options):

  • max_time_ms (Entero)

    La cantidad máxima de tiempo que se puede ejecutar el comando en milisegundos.

  • :proyección (Hash)

    Los campos que se deben incluir o excluir en el documento devuelto.

  • :sort (Hash)

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

  • documento de retorno (Símbolo)

    Ya sea :before o :after.

  • inserción (true | false)

    Si hacer inserción o no cuando el documento no existe.

  • :omitir validación de documento (true | false)

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

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern). Por defecto es el nivel de confirmación de escritura (write concern) de la colección.

  • :colación (Hash)

    La intercalación para usar.

  • :array_filters (arreglo)

    Un conjunto de filtros que especifican a qué elementos de la matriz debe aplicarse una actualización.

  • :: sesión (Sesión)

    La sesión para usar.

  • :hint (Hash | String)

    El índice que se usará para esta operación. Puede especificarse como un Hash (por ejemplo, " { _id: 1 }) o una string (por ejemplo, “ID”).

  • :let (Hash)

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

  • :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:

  • (BSON::Document)

    El documento.

Desde:

  • 2.1.0



1211
1212
1213
# Archivo 'lib/mongo/collection.rb', línea 1211

def find_one_and_update(filtro, update, opciones = {})
  buscar(filtro, opciones).find_one_and_update(update, opciones)
end

#indexes(options = {}) ⇒ Index::View

Obtenga una vista de todos los índices de esta colección. Se puede iterar o tener más operaciones.

Ejemplos:

Obtener la vista de índice.

collection.indexes

Parámetros:

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

    Opciones para obtener una lista de todos los índices.

Opciones Hash (options):

  • :: sesión (Sesión)

    La sesión para usar.

Devuelve:

Desde:

  • 2.0.0



788
789
790
# Archivo 'lib/mongo/collection.rb', línea 788

def indexes(opciones = {})
  Index::vista.Nuevo(sí mismo, opciones)
end

#insert_many(documentos,opciones = {}) ⇒ Resultado

Inserta los documentos proporcionados en la colección.

Ejemplos:

Inserte documentos en la colección.

collection.insert_many([{ name: 'test' }])

Parámetros:

  • Documentos (Enumerable<Hash>)

    Los documentos para insertar.

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

    Las opciones de inserción.

Opciones Hash (options):

  • :omitir validación de documento (true | false)

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

  • :comment (Objeto)

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

  • :ordered (true | false)

    Si las operaciones deben ejecutarse en orden.

  • :: sesión (Sesión)

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

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

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern). Puede ser :w => Entero, :fsync => Booleano, :j => Booleano.

Devuelve:

  • (Result)

    El contenedor de respuesta de la base de datos.

Desde:

  • 2.0.0



910
911
912
913
914
915
# Archivo 'lib/mongo/collection.rb', línea 910

def insert_many(Documentos, opciones = {})
  Caché de consultas.clear_namespace(namespace)

  inserts = Documentos.map{ |doc| { :insert_one => doc }}
  bulk_write(inserts, opciones)
end

#insert_one(documento, opts = {}) ⇒ Resultado

Inserta un solo documento en la colección.

Ejemplos:

Inserte un documento en la colección.

collection.insert_one({ name: 'test' })

Parámetros:

  • Documento (encriptada)

    El documento a insertar.

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

    Las opciones de inserción.

  • opciones (encriptada)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • :omitir validación de documento (true | false)

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

  • :comment (Objeto)

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

  • :: sesión (Sesión)

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

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern). Puede ser :w => Entero, :fsync => Booleano, :j => Booleano.

Devuelve:

  • (Result)

    El contenedor de respuesta de la base de datos.

Desde:

  • 2.0.0



849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
# Archivo 'lib/mongo/collection.rb', línea 849

def insert_one(Documento, opta = {})
  Caché de consultas.clear_namespace(namespace)

  Cliente.con_sesión(opta) hacer |sesión|
    escribir_preocupación = si opta[:escribir_preocupación]
      Nivel de confirmación de escritura (write concern).Obtener(opta[:escribir_preocupación])
    else
      escribir_preocupación_con_la_sesión(sesión)
    end

    si Documento.nil?
      propagar ArgumentError, "El documento a insertar no puede estar vacío"
    end

    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      operation_timeouts: tiempos de espera de operación(opta)
      )
    escribir_con_reintento(escribir_preocupación, context: context) hacer |Conexión, txn_num, context|
      Operación::Insert.Nuevo(
        :documentos => [ Documento ],
        :nombre_de_la_base_de_datos => database.Nombre,
        coll_name => Nombre,
        :escribir_preocupación => escribir_preocupación,
        :omitir validación de documento => !!opta[:omitir validación de documento],
        :options => opta,
        generador_de_id => Cliente.opciones[generador_de_id],
        :: sesión => sesión,
        :txn_num => txn_num,
        :comment => opta[:comment]
      ).ejecutar_con_conexión(Conexión, context: context)
    end
  end
end

#inspectString

Obtén una revisión de la colección con impresión elegante string.

Ejemplos:

Inspeccione la colección.

collection.inspect

Devuelve:

  • (string)

    La inspección de la colección.

Desde:

  • 2.0.0



822
823
824
# Archivo 'lib/mongo/collection.rb', línea 822

def inspeccionar
  "#<Mongo::Collection:0x#{object_id} espacio denombres= #{espacio de nombres}>"
end

# espaciode nombres ⇒ Cadena

Obtener el namespace completamente calificado de la colección.

Ejemplos:

Obtenga el espacio de nombres completamente calificado.

collection.namespace

Devuelve:

  • (string)

    El espacio de nombres de la colección.

Desde:

  • 2.0.0



1265
1266
1267
# Archivo 'lib/mongo/collection.rb', línea 1265

def namespace
  "#{base de datos.nombre}.#{nombre}"
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).

Devuelve:

  • (encriptada)

    valor timeout_ms establecido a nivel de operación (si lo hay) y/o timeout_ms establecido a nivel de colección/base de datos/cliente (si lo hay).

Desde:

  • 2.0.0



1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
# Archivo 'lib/mongo/collection.rb', línea 1290

def tiempos de espera de operación(opta = {})
  # TODO: Deberíamos volver a evaluar si necesitamos dos tiempos de espera por separado.
  {}.tocar hacer |Resultado|
    si opta[:timeout_ms].nil?
      Resultado[:tiempo de espera heredado_ms] = timeout_ms
    else
      Resultado[:operation_timeout_ms] = opta.borrar(:timeout_ms)
    end
  end
end

#escaneo_paralelo(cursor_count, opciones = {}) ⇒ Array

Ejecuta un escaneo paralelo en la colección.

Devuelve una lista de hasta cursor_count cursores que se pueden iterar simultáneamente. Siempre que la colección no se modifique durante el escaneo, cada documento aparece una vez en uno de los conjuntos de resultados de los cursores.

Ejemplos:

Ejecute un escaneo paralelo de la colección.

collection.parallel_scan(2)

Parámetros:

  • cursor_count (Número entero)

    El número máximo de cursores a devolver.

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

    Las opciones del comando de escaneo paralelo.

Opciones Hash (options):

  • max_time_ms (Entero)

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

  • :: sesión (Sesión)

    La sesión para usar.

  • :timeout_mode (:cursor_lifetime | :iteration)

    Cómo interpretar :timeout_ms (si se aplica a la vida útil del cursor o a cada iteración).

  • :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:

  • (Array<cursor>)

    Una matriz de cursores.

Desde:

  • 2.1



1025
1026
1027
# Archivo 'lib/mongo/collection.rb', línea 1025

def escaneo paralelo(cursor_count, opciones = {})
  buscar({}, opciones).escaneo paralelo(cursor_count, opciones)
end

#read_concernHash

Obtén el nivel de consistencia de lectura efectivo para esta instancia de colección.

Si se proporcionó un nivel de consistencia de lectura en las opciones de colección, se devolverá ese nivel de consistencia de lectura; de lo contrario, se devolverá el nivel de consistencia de lectura efectivo de la base de datos.

Ejemplos:

Obtenga la preocupación de lectura.

collection.read_concern

Devuelve:

  • (encriptada)

    La preocupación de la lectura.

Desde:

  • 2.2.0



193
194
195
# Archivo 'lib/mongo/collection.rb', línea 193

def leer_preocupación
  opciones[:read_concern] || database.leer_preocupación
end

#preferencia_de_lecturaHash

Obtenga la preferencia de lectura efectiva para esta colección.

Si se proporciona una preferencia de lectura en las opciones de la colección, se devuelve esa preferencia de lectura; de lo contrario, se devuelve la preferencia de lectura efectiva de la base de datos.

Ejemplos:

Obtén la preferencia de lectura.

collection.read_preference

Devuelve:

  • (encriptada)

    La preferencia de lectura.

Desde:

  • 2.0.0



221
222
223
# Archivo 'lib/mongo/collection.rb', línea 221

def read_preference
  @read_preference ||= opciones[:leer] || database.read_preference
end

#replace_one(filtro, reemplazo, opciones = {}) ⇒ Resultado

Reemplaza un solo documento de la colección con el nuevo documento.

Ejemplos:

Reemplazar un solo documento.

collection.replace_one({ name: 'test' }, { name: 'test1' })

Parámetros:

  • filtro (encriptada)

    El filtro a utilizar.

  • sustitución (encriptada)

    El documento de reemplazo..

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

    Las opciones.

Opciones Hash (options):

  • inserción (true | false)

    Si hacer inserción o no cuando el documento no existe.

  • :omitir validación de documento (true | false)

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

  • :colación (Hash)

    La intercalación para usar.

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

  • :hint (Hash | String)

    El índice que se usará para esta operación. Puede especificarse como un Hash (por ejemplo, " { _id: 1 }) o una string (por ejemplo, “ID”).

  • :let (Hash)

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

  • :sort (Hash)

    Especifica qué documento reemplaza la operación si la query coincide con varios documentos. El primer documento coincidente según el orden de clasificación será reemplazado. Esta opción solo está soportada por los servidores >= 8.0. Los servidores más antiguos reportarán un error por usar esta opción.

Devuelve:

  • (Result)

    La respuesta de la base de datos.

Desde:

  • 2.1.0



1061
1062
1063
# Archivo 'lib/mongo/collection.rb', línea 1061

def replace_one(filtro, sustitución, opciones = {})
  buscar(filtro, opciones).replace_one(sustitución, opciones)
end

#índices_de_búsqueda(opciones = {}) ⇒ ÍndiceDeBúsqueda::Ver

Nota:

Solo se puede proporcionar uno de id o name; es un error especificar ambos, aunque ambos pueden omitirse sin problemas.

Obtenga una vista de todos los índices de búsqueda de esta colección. Se puede iterar u operar directamente. Si se proporciona el ID o el nombre, el iterador devolverá solo el índice indicado. Para todas las demás operaciones, se ignoran el ID y el nombre.

Parámetros:

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

    Las opciones a emplear para configurar la vista.

Opciones Hash (options):

  • :id (Cadena)

    El ID del índice específico a query (opcional)

  • nombre (Cadena)

    El nombre del índice específico a consultar (opcional)

  • :aggregate (Hash)

    El hash de opciones para pasar a la orden de agregación (opcional)

Devuelve:

Desde:

  • 2.0.0



810
811
812
# Archivo 'lib/mongo/collection.rb', línea 810

def search_indexes(opciones = {})
  Índice de búsqueda::vista.Nuevo(sí mismo, opciones)
end

#server_selectorMongo::ServerSelector

Obtén el selector de servidor para esta colección.

Ejemplos:

Obtenga el selector de servidor.

collection.server_selector

Devuelve:

Desde:

  • 2.0.0



205
206
207
# Archivo 'lib/mongo/collection.rb', línea 205

def selector_de_servidor
  @server_selector ||= ServerSelector.Obtener(read_preference || database.selector_de_servidor)
end

#colección_del_sistema?Booleano

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

Si la colección es una colección de sistema.

Devuelve:

  • (booleano)

    Si el sistema es una colección de sistemas.

Desde:

  • 2.0.0



1274
1275
1276
# Archivo 'lib/mongo/collection.rb', línea 1274

def system_collection?
  Nombre.start_with?('system.')
end

#timeout_msInteger | nil

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 tiempo de espera de la operación correspondiente a esta base de datos o al cliente correspondiente.

Devuelve:

  • (Integer | nil)

    Tiempo de espera de la operación que es para esta base de datos o para el cliente correspondiente.

Desde:

  • 2.0.0



1282
1283
1284
# Archivo 'lib/mongo/collection.rb', línea 1282

def timeout_ms
  @timeout_ms || database.timeout_ms
end

#update_many(filter, update, options = {}) ⇒ Result

Actualizar documentos en la colección.

Ejemplos:

Actualiza varios documentos en la colección.

collection.update_many({ name: 'test'}, '$set' => { name: 'test1' })

Parámetros:

  • filtro (encriptada)

    El filtro a utilizar.

  • update (Hash | Matriz<Hash>)

    El documento o canalización de actualización.

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

    Las opciones.

Opciones Hash (options):

  • inserción (true | false)

    Si hacer inserción o no cuando el documento no existe.

  • :omitir validación de documento (true | false)

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

  • :colación (Hash)

    La intercalación para usar.

  • :array_filters (arreglo)

    Un conjunto de filtros que especifican a qué elementos de la matriz debe aplicarse una actualización.

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

  • :hint (Hash | String)

    El índice que se usará para esta operación. Puede especificarse como un Hash (por ejemplo, " { _id: 1 }) o una string (por ejemplo, “ID”).

  • :let (Hash)

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

Devuelve:

  • (Result)

    La respuesta de la base de datos.

Desde:

  • 2.1.0



1094
1095
1096
# Archivo 'lib/mongo/collection.rb', línea 1094

def update_many(filtro, update, opciones = {})
  buscar(filtro, opciones).update_many(update, opciones)
end

#update_one(filter, update, options = {}) ⇒ Result

Actualiza un solo documento en la colección.

Ejemplos:

Actualiza un solo documento en la colección.

collection.update_one({ name: 'test'}, '$set' => { name: 'test1'})

Parámetros:

  • filtro (encriptada)

    El filtro a utilizar.

  • update (Hash | Matriz<Hash>)

    El documento o canalización de actualización.

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

    Las opciones.

Opciones Hash (options):

  • inserción (true | false)

    Si hacer inserción o no cuando el documento no existe.

  • :omitir validación de documento (true | false)

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

  • :colación (Hash)

    La intercalación para usar.

  • :array_filters (arreglo)

    Un conjunto de filtros que especifican a qué elementos de la matriz debe aplicarse una actualización.

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

  • :hint (Hash | String)

    El índice que se usará para esta operación. Puede especificarse como un Hash (por ejemplo, " { _id: 1 }) o una string (por ejemplo, “ID”).

  • :let (Hash)

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

  • :sort (Hash)

    Especifica qué documento actualiza la operación si la query coincide con varios documentos. Se actualizará el primer documento que coincida con el orden de clasificación. Esta opción solo está soportada por los servidores >= 8.0. Los servidores más antiguos reportarán un error por usar esta opción.

Devuelve:

  • (Result)

    La respuesta de la base de datos.

Desde:

  • 2.1.0



1132
1133
1134
# Archivo 'lib/mongo/collection.rb', línea 1132

def update_one(filtro, update, opciones = {})
  buscar(filtro, opciones).update_one(update, opciones)
end

#watch(tubería = [], opciones = {}) ⇒ ChangeStream

Nota:

Un flujo de cambios solo permite el nivel de consistencia de lectura de 'mayoría'.

Nota:

Este método asistente es preferible a ejecutar una agregación sin procesar con una etapa de $changeStream, con el fin de soportar la capacidad de reanudación.

A partir de la versión 3.6 del servidor MongoDB, se admite una etapa de pipeline “$changeStream” en el marco de agregación. Esta etapa permite a los usuarios solicitar que se envíen notificaciones por todos los cambios en una colección particular.

Ejemplos:

Reciba notificaciones de cambios para una colección dada.

collection.watch([{ '$match' => { operationType: { '$in' => ['insert', 'replace'] } } }])

Parámetros:

  • pipeline (arreglo<Hash>) (predeterminado: [])

    Operadores opcionales de filtro adicional.

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

    Las opciones de flujo de cambios.

Opciones Hash (options):

  • :documento_completo (Cadena)

    Valores permitidos: nulo, 'predeterminado', 'updateLookup', 'whenAvailable', 'obligatorio'.

    El valor predeterminado es no enviar ningún valor (es decir, nulo), lo que equivale a "predeterminado". Por defecto, la notificación de cambios para actualizaciones parciales incluirá un delta que describe los cambios en el documento.

    Cuando se configura en 'updateLookup', la notificación de cambio para actualizaciones parciales incluirá tanto un delta que describe los cambios en el documento como una copia del documento completo que se modificó algún tiempo después de que ocurrió el cambio.

    Cuando se establece en 'whenAvailable', configura el flujo de cambios para devolver la imagen posterior del documento modificado para eventos de reemplazo y actualización si la imagen posterior para este evento está disponible.

    Cuando se establece en "requerido", se comporta de la misma manera que "cuandoDisponible" excepto que se genera un error si la imagen de publicación no está disponible.

  • documento_completo_antes_de_modificar (Cadena)

    Valores permitidos: nil, ‘whenAvailable’ , ‘required’ , ‘off’.

    El valor por defecto es no enviar ningún valor (es decir, nil), que equivale a ‘apagado’ o ‘desactivado’.

    Cuando se configura en 'whenAvailable', establece el flujo de cambios para devolver la preimagen del documento modificado en caso de eventos de reemplazo, actualizar o borrar, si está disponible.

    Cuando se establece en 'obligatorio', el mismo comportamiento que 'whenAvailable' excepto que se genera un error si la imagen previa no está disponible.

  • :resume_after (BSON::Document, Hash)

    Especifica el punto de partida lógico para el nuevo flujo de cambios.

  • ; tiempo_máximo_espera_ms (Entero)

    El tiempo máximo que el servidor espera documentos nuevos para satisfacer una query de flujo de cambios.

  • :batch_size (Entero)

    El número de documentos a devolver por agrupar.

  • :colación (BSON::Document, Hash)

    La intercalación para usar.

  • :: sesión (Sesión)

    La sesión para usar.

  • :start_at_operation_time (BSON::Timestamp)

    Solo devuelve los cambios que ocurrieron en o después de la marca de tiempo especificada. Cualquier comando ejecutado en el servidor devolverá un tiempo de clúster que puede usarse aquí. Solo es reconocido por versiones del servidor 4.0+}.

  • :comment (Objeto)

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

  • :mostrar eventos expandidos (booleano)

    Permite al servidor enviar la lista 'expandida' de eventos de flujo de cambios. La lista de eventos adicionales incluidos con este conjunto de flags son: createIndexes, dropIndexes, modify, create, shardCollection, reshardCollection, refineCollectionShardKey.

  • :timeout_mode (:cursor_lifetime | :iteration)

    Cómo interpretar :timeout_ms (si se aplica a la vida útil del cursor o a cada iteración).

  • :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:

  • (Transmisiónde cambios)

    El objeto de flujo de cambio.

Desde:

  • 2.5.0



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

def reloj(pipeline = [], opciones = {})
  view_options = opciones.dup
  view_options[tipo_de_cursor] = tailable_await si opciones[; tiempo_máximo_espera_ms]
  vista::ChangeStream.Nuevo(vista.Nuevo(sí mismo, {}, view_options), pipeline, nulo, opciones)
end

#con(new_options) ⇒ Mongo::Collection

Devuelve una nueva instancia de colección.

Ejemplos:

Obtener una colección con un conjunto cambiado de nivel de consistencia de lectura.

collection.with(read_concern: { level: :majority })

Obtén una colección con un nivel de confirmación de escritura (write concern) cambiado.

collection.with(write_concern: { w:  3 })

Parámetros:

  • nuevas_opciones (encriptada)

    Las nuevas opciones a usar.

Opciones Hash(new_options):

  • :leer (Hash)

    Las opciones de preferencia de lectura. El hash puede tener los siguientes elementos:

    • :mode – preferencia de lectura especificada como un símbolo; los valores válidos son:primary,:primary_preferred,:secondary,:secondary_preferred y:nearest.

    • :tag_sets – una matriz de hashes.

    • :local_threshold.

  • :read_concern (Hash)

    El hash de opciones de lectura se refiere a, con las siguientes claves opcionales:

    • :level: el nivel de preferencia de lectura como símbolo; valores válidos

      are *:local*, *:majority*, and *:snapshot*
      
  • guardar (Hash)

    Obsoleto. Equivalente a la opción :write_concern.

  • :escribir_preocupación (Hash)

    Las opciones de nivel de confirmación de escritura (write concern). Puede ser :w => Integer | String, :fsync => booleano, :j => booleano.

Devuelve:

Desde:

  • 2.1.0



299
300
301
302
303
304
305
306
307
308
309
310
311
# Archivo 'lib/mongo/collection.rb', línea 299

def con(nuevas_opciones)
  nuevas_opciones.claves.cada hacer |k|
    propagar Error::Opción de colección inmutable.Nuevo(k) a menos que OPCIONES MODIFICABLES.incluir?(k)
  end
  opciones = @options.dup
  si opciones[guardar] && nuevas_opciones[:escribir_preocupación]
    opciones.borrar(guardar)
  end
  si opciones[:escribir_preocupación] && nuevas_opciones[guardar]
    opciones.borrar(:escribir_preocupación)
  end
  Colección.Nuevo(database, Nombre, opciones.update(nuevas_opciones))
end

#write_concernMongo::WriteConcern

Obtén el nivel de confirmación de escritura (write concern) efectivo en esta colección.

Si se ha proporcionado un nivel de confirmación de escritura (write concern) en las opciones de la colección, se devolverá ese nivel de confirmación de escritura (write concern), de lo contrario se devolverá el nivel de confirmación de escritura (write concern) efectivo de la base de datos.

Ejemplos:

Obtenga la preocupación escrita.

collection.write_concern

Devuelve:

Desde:

  • 2.0.0



237
238
239
240
# Archivo 'lib/mongo/collection.rb', línea 237

def escribir_preocupación
  @write_concern ||= Nivel de confirmación de escritura (write concern).Obtener(
    opciones[:escribir_preocupación] || opciones[guardar] || database.escribir_preocupación)
end

#write_concern_with_session(sesión) ⇒ Mongo::WriteConcern

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

Obtenga el nivel de confirmación de escritura (write concern) para utilizar en una operación en esta colección, dada una sesión.

Si la sesión está en una transacción y la colección tiene una solicitud de escritura no confirmada, elimine la opción :w de dicha solicitud. De lo contrario, devuelva la solicitud de escritura sin modificar.

Devuelve:

Desde:

  • 2.0.0



253
254
255
256
257
258
259
260
261
262
263
# Archivo 'lib/mongo/collection.rb', línea 253

def escribir_preocupación_con_la_sesión(sesión)
  wc = escribir_preocupación
  si sesión && sesión.en_transacción?
    si wc && !wc.¿entendido?
      opta = wc.opciones.dup
      opta.borrar(:w)
      return Nivel de confirmación de escritura (write concern).Obtener(opta)
    end
  end
  wc
end