Clase: Mongo::Colección

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Ayudantes, cifrado consultable, reintentable
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 en el espacio de nombres

Modules: Asistentes, QueryableEncryption Clases: Ver

Colapso delresumen constante

CAPPED =

La opción limitada.

Desde:

  • 2.1.0

'tapado '.freeze
NS =

La constante de campo ns.

Desde:

  • 2.1.0

'ns'.freeze
OPCIONES_CAMBIABLES =

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

Desde:

  • 2.1.0

[ :leer, :read_concern, :escribir, :escribir_preocupación ].freeze
CREAR_OPCIONES_DE_COLECCIÓN =

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.

Mapa de opciones para transformar las opciones de creación de colección.

Desde:

  • 2.0.0

{
  :serie_temporal => :serie temporal,
  :caduca después de => :expireAfterSeconds,
  :clustered_index => :clusteredIndex,
  :cambiar imágenes previas y posteriores de la transmisión => :cambiar imágenes previas y posteriores del flujo,
  :campos_encriptados => :Campos cifrados,
  :validator => :validator,
  :view_on => :viewOn
}

Constantes incluidas desde QueryableEncryption

Cifrado consultable::QE2_MIN_WIRE_VERSION

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Métodos incluidos de Helpers

#do_drop

Métodos incluidos en QueryableEncryption

#tal vez_crear_colecciones_qe, #tal_vez_eliminar_colecciones_emm

Métodos incluidos en Retryable

#trabajador_de_lectura, #servidor_de_selección, #trabajador_de_escritura

Detalles del constructor

#inicializar(base de datos, nombre, opciones = {}) ⇒ Colección

Crear una nueva colección.

Ejemplos:

Crear una nueva colección.

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

Parámetros:

  • database (Mongo::Basede datos)

    La base de datos de la colección.

  • Nombre (Cadena,Símbolo)

    El nombre de la colección.

  • opciones (Hash) (predeterminado: {})

    Las opciones de colección.

  • opta (Hash)

    un conjunto personalizable de opciones

Opciones Hash(opciones):

  • :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 contener 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 que se utilizará para la operación.

  • :tamaño (Entero)

    El tamaño de la colección limitada.

  • :tiempo de espera_ms (Entero)

    El tiempo de espera de la operación en milisegundos. Debe ser un entero positivo. Un valor explícito de 0 significa infinito. El valor predeterminado no está definido, lo que significa que se hereda de la base de datos o del cliente.

Aumentos:

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 no ser que Nombre
  Si opciones[:escribir] && opciones[:escribir_preocupación] && opciones[:escribir] != opciones[:escribir_preocupación]
    propagar ArgumentError, "Si se proporcionan tanto:write como:write_concern, deben ser idénticos: #{options.inspect}"
  end
  @database = database
  @name = Nombre.a_s.freeze
  @opciones = opciones.dup
  @timeout_ms = opciones.borrar(:tiempo de espera_ms)
=begin Soporte de objetos WriteConcern
  si @options[:write_concern].is_a?(WriteConcern::Base)
    # Almacene en caché la instancia para no reconstruirla innecesariamente.
    @write_concern = @options[:write_concern]
    @options[:write_concern] = @write_concern.options
  end
=end
  @opciones.freeze
end

Detalles de los atributos de instancia

#databaseMongo::Database (readonly)

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

Devuelve:

  • (Mongo::Basede datos)

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

Desde:

  • 2.0.0



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

def database
  @database
end

#nombreCadena (solo lectura)

Devuelve el nombre de la colección.

Devuelve:

  • (Cadena) -

    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 colección.

Devuelve:

  • (Hash)

    Las opciones de colección.

Desde:

  • 2.0.0



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

def opciones
  @opciones
end

Detalles del método de instancia

#==(otro) ⇒ verdadero | falso

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

Ejemplos:

Comprobar igualdad de colección.

collection == other

Parámetros:

  • otros (Objeto) -

    El objeto a comprobar.

Devuelve:

  • (verdadero | falso)

    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 no ser que otros.is_a?(Colección)
  Nombre == otros.Nombre && database == otros.database && opciones == otros.opciones
end

#agregado(tubería, opciones = {}) ⇒ Vista::Agregación

Realizar una agregación en la colección.

Ejemplos:

Realizar una agregación.

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

Parámetros:

  • pipeline (Matriz<Hash>)

    La pipeline de agregación.

  • opciones (Hash) (predeterminado: {})

    Las opciones de agregación.

Opciones Hash(opciones):

  • :permitir_uso_de_disco (true | false)

    Establezca como verdadero si se permite el uso del disco durante la agregación.

  • :tamaño_del_lote (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 a utilizar.

  • :comment (Objeto)

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

  • :hint (Cadena)

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

  • :dejar (Hash)

    Asignación de variables para usar en la canalización. Consulte la documentación del servidor para obtener más información.

  • :tiempo máximo_ms (Entero)

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

  • :sesión (Sesión)

    La sesión a utilizar.

  • :tiempo de espera_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(yo, {}, 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:

  • solicitudes (Enumerable<Hash>)

    Las solicitudes de escritura masiva.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :ordered (true | false)

    Si las operaciones deben ejecutarse en orden.

  • :escribir_preocupación (Hash)

    Las opciones de escritura pueden 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.

  • :tiempo de espera_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.

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

Devuelve:

Desde:

  • 2.0.0



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

def escritura masiva(solicitudes, opciones = {})
  Escritura masiva.Nuevo(yo, solicitudes, opciones).ejecutar
end

#¿limitado?true | false

¿La colección tiene un límite?

Ejemplos:

¿La colección tiene un límite?

collection.capped?

Devuelve:

  • (verdadero | falso)

    Si la colección está limitada.

Desde:

  • 2.0.0



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

def ¿tapado?
  database.listas_colecciones(filtrar: { nombre: Nombre })
    .primera
    &.dig('options', CAPPADO) || false
end

#count(filtro = nulo, opciones = {}) ⇒ Entero

Obsoleto.

Utilice #count_documents o estimate_document_count en su lugar. Sin embargo, tenga en cuenta que deberá sustituir los siguientes operadores 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) (predeterminado: {})

    Las opciones de conteo.

Opciones Hash(opciones):

  • :hint (Hash)

    El índice a utilizar.

  • :limit (Entero)

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

  • :tiempo máximo_ms (Entero)

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

  • :saltar (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 a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :comment (Objeto)

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

  • :tiempo de espera_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:

  • (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(yo, filtro || {}, opciones).count(opciones)
end

#count_documents(filtro = {}, opciones = {}) ⇒ Entero

Obtiene el número de documentos que coinciden con la consulta. A diferencia del método obsoleto #count, este método 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 ningún 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) (predeterminado: {})

    Un filtro para hacer coincidir documentos.

  • opciones (Hash) (predeterminado: {})

    Opciones para la operación.

Opciones Hash(opciones):

  • :saltar (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 documentos a contar.

  • :tiempo máximo_ms (Entero)

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

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :colación (Hash)

    La intercalación a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :comment (Objeto)

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

  • :tiempo de espera_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:

  • (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(yo, 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) (predeterminado: {})

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

Opciones Hash (opts):

  • :capeado (true | false)

    Crear una colección de tamaño fijo.

  • :cambiar imágenes previas y posteriores de la transmisión (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 como verdadero. La colección no aceptará documentos insertados ni actualizados cuyo 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 que se usará al crear la colección. Esta opción no se enviará al servidor al llamar a los métodos de la colección.

  • :campos_encriptados (Hash)

    Hash que describe campos cifrados para cifrado consultable.

  • :caduca después de (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.

  • :tubería (Matriz<Hash>)

    Una matriz de etapas de pipeline. Se creará una vista al aplicar esta pipeline a la colección o vista view_on.

  • :sesión (Sesión)

    La sesión que se utilizará para la operación.

  • :tamaño (Entero)

    El tamaño de la colección limitada.

  • :serie_temporal (Hash)

    Cree una colección de series temporales. El hash puede contener los siguientes elementos:

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

    • :metaField – El nombre del campo que contiene metadatos en cada documento de serie temporal.

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

  • :escribir (Hash)

    Obsoleto. Equivalente a la opción :write_concern.

  • :escribir_preocupación (Hash)

    Las opciones de escritura pueden ser: :w => Entero|Cadena, :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 de creación provoca que se rompa.
  # Filtrar las opciones de lectura. La sesión también se excluye aquí, ya que se obtiene
  # utilizado por la llamada a with_session y no debe ser parte de la
  # operación. Si se pasa a la operación, fallará BSON.
  # serialización.
  # TODO coloca la lista de opciones de lectura en una constante de nivel de clase cuando
  # averiguamos cuál es el conjunto completo de ellos.
  opciones = Picadillo[yo.opciones.unir(opta).rechazar hacer |clave, valor|
    %w(Lea read_preference leer_preocupación sesión).¿incluir?(clave.a_s)
  end]
  # Conversión de opciones de Ruby al estilo del servidor.
  CREAR_OPCIONES_DE_COLECCIÓN.cada hacer |clave rubí, clave_del_servidor|
    Si opciones.key?(clave rubí)
      opciones[clave_del_servidor] = opciones.borrar(clave rubí)
    end
  end
  operación = { :crear => Nombre }.unir(opciones)
  operación.borrar(:escribir)
  operación.borrar(:escribir_preocupación)
  Cliente.Enviar(:con_sesión, opta) hacer |sesión|
    escribir_preocupación = Si opta[:escribir_preocupación]
      Escribir preocupación.Obtener(opta[:escribir_preocupación])
    else
      yo.escribir_preocupación
    end

    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión
    )
    maybe_create_qe_collections(opta[:campos_encriptados], Cliente, sesión) hacer |campos cifrados|
      Operación::Crear.Nuevo(
        selector: operación,
        nombre_base_datos: database.Nombre,
        escribir_preocupación: 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.
        colación: opciones[:colación] || opciones['colación '],
        campos cifrados: campos cifrados,
        validator: opciones[:validator],
      ).ejecutar(
        siguiente_primaria(nulo, sesión),
        context: context
      )
    end
  end
end

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

Eliminar documentos de la colección.

Ejemplos:

Eliminar varios documentos de la colección.

collection.delete_many

Parámetros:

  • filtro (Hash) (predeterminado: nulo)

    El filtro a utilizar.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :colación (Hash)

    La intercalación a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :hint (Hash | Cadena)

    El índice que se utilizará para esta operación. Puede especificarse como un hash (p. ej., {1 } _id:) o una cadena (p. ej.," id ").

  • :tiempo de espera_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.

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

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 eliminar_muchos(filtro = nulo, opciones = {})
  buscar(filtro, opciones).eliminar_muchos(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) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :colación (Hash)

    La intercalación a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :hint (Hash | Cadena)

    El índice que se utilizará para esta operación. Puede especificarse como un hash (p. ej., {1 } _id:) o una cadena (p. ej.," id ").

  • :tiempo de espera_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.

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

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>

Obtenga una lista de valores distintos para un campo específico.

Ejemplos:

Obtenga los valores distintos.

collection.distinct('name')

Parámetros:

  • nombre_del_campo (Símbolo, String)

    El nombre del campo.

  • filtro (Hash) (predeterminado: nulo)

    Los documentos de los cuales se pueden recuperar los valores distintos.

  • opciones (Hash) (predeterminado: {})

    Las opciones de comando distintas.

Opciones Hash(opciones):

  • :tiempo máximo_ms (Entero)

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

  • :leer (Hash)

    Las opciones de preferencia de lectura.

  • :colación (Hash)

    La intercalación a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :tiempo de espera_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:

  • (Matriz<Object>)

    La lista de valores distintos.

Desde:

  • 2.1.0



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

def distinct(nombre_del_campo, filtro = nulo, opciones = {})
  vista.Nuevo(yo, filtro || {}, opciones).distinct(nombre_del_campo, opciones)
end

#descartar(opts = {}) ⇒ Result

Nota:

Se suprime el error que se devuelve 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) (predeterminado: {})

    Las opciones para la operación de caída.

  • opciones (Hash)

    un conjunto personalizable de opciones

Opciones Hash (opts):

  • :sesión (Sesión)

    La sesión que se utilizará para la operación.

  • :escribir_preocupación (Hash)

    Las opciones de escritura preocupantes.

  • :campos_encriptados (Hash | nulo)

    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[:campos_encriptados], Cliente, sesión) hacer
      preocupación por escritura temporal = escribir_preocupación
      escribir_preocupación = Si opta[:escribir_preocupación]
        Escribir preocupación.Obtener(opta[:escribir_preocupación])
      else
        preocupación por escritura temporal
      end
      context = Operación::Context.Nuevo(
        cliente: Cliente,
        sesión: sesión,
        tiempos de espera de operación: tiempos de espera de operación(opta)
      )
      operación = Operación::Descartar.Nuevo({
        selector: { :gota => Nombre },
        nombre_base_datos: database.Nombre,
        escribir_preocupación: escribir_preocupación,
        sesión: sesión,
      })
      hacer_soltar(operación, sesión, context)
    end
  end
end

#recuento_de_documentos_estimado(opciones = {}) ⇒ Entero

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 contar documentos que coinciden con un filtro.

Parámetros:

  • opciones (Hash) (predeterminado: {})

    Opciones para la operación.

Opciones Hash(opciones):

  • :tiempo máximo_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.

  • :tiempo de espera_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:

  • (Entero)

    El recuento de documentos.

Desde:

  • 2.6.0



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

def recuento estimado de documentos(opciones = {})
  vista.Nuevo(yo, {}, opciones).recuento estimado de documentos(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)

Obtenga todos los documentos de una colección.

collection.find

Parámetros:

  • filtro (Hash) (predeterminado: nulo)

    El filtro a utilizar en la búsqueda.

  • opciones (Hash) (predeterminado: {})

    Las opciones para el find.

Opciones Hash(opciones):

  • :permitir_uso_de_disco (true | false)

    Cuando se establece como verdadero, el servidor puede escribir 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.

  • :tamaño_del_lote (Entero)

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

  • :colación (Hash)

    La intercalación a utilizar.

  • :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 documentos que se devolverán de la consulta.

  • :tiempo máximo_ms (Entero)

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

  • :modifiers (Hash)

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

  • :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 de replicación interna, las aplicaciones no deben configurar esta opción.

  • :proyección (Hash)

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

  • :sesión (Sesión)

    La sesión a utilizar.

  • :saltar (Entero)

    La cantidad de documentos que se deben omitir antes de devolver resultados.

  • :sort (Hash)

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

  • :timeout_mode (:tiempo de vida del cursor |:iteración)

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

  • :tiempo de espera_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.

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

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(yo, filtro || {}, opciones)
end

#buscar_uno_y_eliminar(filtro, opciones = {}) ⇒ BSON::Documento?

Encuentra un solo documento en la base de datos mediante findAndModify y lo elimina, devolviendo el documento original.

Ejemplos:

Busque un documento y elimínelo.

collection.find_one_and_delete(name: 'test')

Parámetros:

  • filtro (Hash)

    El filtro a utilizar.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :tiempo máximo_ms (Entero)

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

  • :proyección (Hash)

    Los campos a incluir o excluir en el documento devuelto.

  • :sort (Hash)

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

  • :escribir_preocupación (Hash)

    Opciones de escritura. El valor predeterminado es la escritura de la colección.

  • :colación (Hash)

    La intercalación a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :tiempo de espera_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 | Cadena)

    El índice que se utilizará para esta operación. Puede especificarse como un hash (p. ej., {1 } _id:) o una cadena (p. ej.," id ").

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

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

#buscar_uno_y_reemplazar(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' })

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

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

Parámetros:

  • filtro (Hash)

    El filtro a utilizar.

  • sustitución (BSON::Documento)

    El documento de reemplazo.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :tiempo máximo_ms (Entero)

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

  • :proyección (Hash)

    Los campos a incluir o excluir en el documento devuelto.

  • :sort (Hash)

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

  • :devolver_documento (Símbolo)

    O bien :before o :after.

  • :upsert (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)

    Opciones de escritura. El valor predeterminado es la escritura de la colección.

  • :colación (Hash)

    La intercalación a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :hint (Hash | Cadena)

    El índice que se utilizará para esta operación. Puede especificarse como un hash (p. ej., {1 } _id:) o una cadena (p. ej.," id ").

  • :tiempo de espera_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.

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

Devuelve:

  • (BSON::Documento)

    El documento.

Desde:

  • 2.1.0



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

def encontrar_uno_y_reemplazar(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 solo documento a través de findAndModify y lo actualiza, devolviendo el documento original a menos que se especifique lo contrario.

Ejemplos:

Buscar un documento y actualizarlo, devolviendo el original.

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

Busque un documento y actualícelo, devolviendo el documento actualizado.

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

Parámetros:

  • filtro (Hash)

    El filtro a utilizar.

  • update (Hash | Matriz<Hash>)

    El documento o canalización de actualización.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :tiempo máximo_ms (Entero)

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

  • :proyección (Hash)

    Los campos a incluir o excluir en el documento devuelto.

  • :sort (Hash)

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

  • :devolver_documento (Símbolo)

    O bien :before o :after.

  • :upsert (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)

    Opciones de escritura. El valor predeterminado es la escritura de la colección.

  • :colación (Hash)

    La intercalación a utilizar.

  • :filtros_de_matriz (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 a utilizar.

  • :hint (Hash | Cadena)

    El índice que se utilizará para esta operación. Puede especificarse como un hash (p. ej., {1 } _id:) o una cadena (p. ej.," id ").

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

  • :tiempo de espera_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::Documento)

    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:

Obtenga la vista de índice.

collection.indexes

Parámetros:

  • opciones (Hash) (predeterminado: {})

    Opciones para obtener una lista de todos los índices.

Opciones Hash(opciones):

  • :sesión (Sesión)

    La sesión a utilizar.

Devuelve:

Desde:

  • 2.0.0



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

def indexes(opciones = {})
  Index::vista.Nuevo(yo, 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 a insertar.

  • opciones (Hash) (predeterminado: {})

    Las opciones de inserción.

Opciones Hash(opciones):

  • :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 que se utilizará para la operación.

  • :tiempo de espera_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 escritura pueden 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.espacio de nombres claro(namespace)

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

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

Insertar un solo documento en la colección.

Ejemplos:

Insertar un documento en la colección.

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

Parámetros:

  • Documento (Hash)

    El documento a insertar.

  • opta (Hash) (predeterminado: {})

    Las opciones de inserción.

  • opciones (Hash)

    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 que se utilizará para la operación.

  • :escribir_preocupación (Hash)

    Las opciones de escritura pueden 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.espacio de nombres claro(namespace)

  Cliente.con_sesión(opta) hacer |sesión|
    escribir_preocupación = Si opta[:escribir_preocupación]
      Escribir preocupación.Obtener(opta[:escribir_preocupación])
    else
      escribir_preocupación_con_la_sesión(sesión)
    end

    Si Documento.nil?
      propagar ArgumentError, "Eldocumento a insertar no puede sernulo"
    end

    context = Operación::Context.Nuevo(
      cliente: Cliente,
      sesión: sesión,
      tiempos de espera de operación: tiempos de espera de operación(opta)
      )
    escribir_con_reintentar(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_nombre => Nombre,
        :escribir_preocupación => escribir_preocupación,
        :omitir validación de documento => !!opta[:omitir validación de documento],
        :opciones => 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

#inspeccionarCadena

Obtenga una bonita inspección de cuerda impresa para la colección.

Ejemplos:

Inspeccione la colección.

collection.inspect

Devuelve:

  • (Cadena) -

    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

Obtenga el espacio de nombres completo de la colección.

Ejemplos:

Obtenga el espacio de nombres completamente calificado.

collection.namespace

Devuelve:

  • (Cadena) -

    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 timeout_ms establecido en el nivel de operación (si lo hay) y/o el timeout_ms establecido en el nivel de colección/base de datos/cliente (si lo hay).

Devuelve:

  • (Hash)

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

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 reevaluar si necesitamos dos tiempos de espera por separado.
  {}.grifo hacer |resultado|
    Si opta[:tiempo de espera_ms].nil?
      resultado[:tiempo de espera heredado_ms] = tiempo de espera_ms
    else
      resultado[:tiempo de espera_de_operación_ms] = opta.borrar(:tiempo de espera_ms)
    end
  end
end

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

Ejecutar un escaneo paralelo en la vista de colección.

Devuelve una lista de hasta cursor_count cursores que se pueden iterar simultáneamente. Mientras 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:

Ejecutar un escaneo de recopilación en paralelo.

collection.parallel_scan(2)

Parámetros:

  • recuento de cursores (Entero)

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

  • opciones (Hash) (predeterminado: {})

    Las opciones del comando de escaneo paralelo.

Opciones Hash(opciones):

  • :tiempo máximo_ms (Entero)

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

  • :sesión (Sesión)

    La sesión a utilizar.

  • :timeout_mode (:tiempo de vida del cursor |:iteración)

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

  • :tiempo de espera_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:

  • (Matriz)

    Una matriz de cursores.

Desde:

  • 2.1



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

def escaneo paralelo(recuento de cursores, opciones = {})
  buscar({}, opciones).escaneo paralelo(recuento de cursores, opciones)
end

#leer_preocupaciónHash

Obtenga la preocupación de lectura efectiva para esta instancia de colección.

Si se proporcionó una preocupación de lectura en las opciones de recopilación, se devolverá dicha preocupación de lectura; de lo contrario, se devolverá la preocupación de lectura efectiva de la base de datos.

Ejemplos:

Obtenga la preocupación de lectura.

collection.read_concern

Devuelve:

  • (Hash)

    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 proporcionó una preferencia de lectura en las opciones de colección, se devolverá esa preferencia de lectura; de lo contrario, se devolverá la preferencia de lectura efectiva de la base de datos.

Ejemplos:

Obtenga la preferencia de lectura.

collection.read_preference

Devuelve:

  • (Hash)

    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 (Hash)

    El filtro a utilizar.

  • sustitución (Hash)

    El documento sustitutivo..

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :upsert (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 a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :tiempo de espera_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 | Cadena)

    El índice que se utilizará para esta operación. Puede especificarse como un hash (p. ej., {1 } _id:) o una cadena (p. ej.," id ").

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

  • :sort (Hash)

    Especifica qué documento reemplaza la operación si la consulta coincide con varios documentos. Se reemplazará el primer documento que coincida con el orden de clasificación. Esta opción solo es compatible con servidores >= 8.0. Los servidores más antiguos informarán un error al 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 reemplazar_uno(filtro, sustitución, opciones = {})
  buscar(filtro, opciones).reemplazar_uno(sustitución, opciones)
end

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

Nota:

Solo se puede proporcionar uno de los dos: id o nombre; es un error especificar ambos, aunque ambos pueden omitirse de forma segura.

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) (predeterminado: {})

    Las opciones a utilizar para configurar la vista.

Opciones Hash(opciones):

  • :id (Cadena)

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

  • :nombre (Cadena)

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

  • :aggregate (Hash)

    El hash de opciones que se pasará al comando agregado (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(yo, opciones)
end

#selector_de_servidorMongo::ServerSelector

Obtenga 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
  @selector_de_servidor ||= Selector de servidor.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 ¿colección_del_sistema?
  Nombre.empezar_con?(' sistema. ')
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 tiempo de espera_ms
  @timeout_ms || database.tiempo de espera_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 (Hash)

    El filtro a utilizar.

  • update (Hash | Matriz<Hash>)

    El documento o canalización de actualización.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :upsert (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 a utilizar.

  • :filtros_de_matriz (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 a utilizar.

  • :tiempo de espera_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 | Cadena)

    El índice que se utilizará para esta operación. Puede especificarse como un hash (p. ej., {1 } _id:) o una cadena (p. ej.," id ").

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

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 (Hash)

    El filtro a utilizar.

  • update (Hash | Matriz<Hash>)

    El documento o canalización de actualización.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Opciones Hash(opciones):

  • :upsert (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 a utilizar.

  • :filtros_de_matriz (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 a utilizar.

  • :tiempo de espera_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 | Cadena)

    El índice que se utilizará para esta operación. Puede especificarse como un hash (p. ej., {1 } _id:) o una cadena (p. ej.," id ").

  • :dejar (Hash)

    Asignación de variables para usar en el comando. Consulte la documentación del servidor para obtener más información.

  • :sort (Hash)

    Especifica qué documento actualiza la operación si la consulta coincide con varios documentos. Se actualizará el primer documento que coincida con el orden de clasificación. Esta opción solo es compatible con servidores >= 8.0. Los servidores más antiguos informarán un error al 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 auxiliar es preferible a ejecutar una agregación sin procesar con una etapa $changeStream, con el propósito de soportar la reanudación.

A partir de la versión 3.6 del servidor MongoDB, el marco de agregación admite la etapa de canalización "$changeStream". Esta etapa permite a los usuarios solicitar el envío de notificaciones para todos los cambios en una colección específica.

Ejemplos:

Recibir notificaciones de cambios para una colección determinada.

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

Parámetros:

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

    Operadores de filtro adicionales opcionales.

  • opciones (Hash) (predeterminado: {})

    Las opciones del flujo de cambios.

Opciones Hash(opciones):

  • :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 'obligatorio', el mismo comportamiento que 'whenAvailable' excepto que se genera un error si la imagen posterior no está disponible.

  • :documento completo antes del cambio (Cadena)

    Valores permitidos: nulo, 'whenAvailable', 'required', 'off'.

    El valor predeterminado es no enviar un valor (es decir, nulo), lo que equivale a "desactivado".

    Cuando se establece en 'whenAvailable', configura el flujo de cambios para devolver la imagen previa del documento modificado para eventos de cambio de reemplazo, actualización y eliminación 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::Documento, Hash)

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

  • :tiempo máximo de espera ms (Entero)

    La cantidad máxima de tiempo que el servidor debe esperar nuevos documentos para satisfacer una consulta de flujo de cambios.

  • :tamaño_del_lote (Entero)

    El número de documentos a devolver por agrupar.

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

    La intercalación a utilizar.

  • :sesión (Sesión)

    La sesión a utilizar.

  • :start_at_operation_time (BSON::Marca de tiempo)

    Solo se devuelven los cambios ocurridos en la fecha y hora especificadas o después. Cualquier comando ejecutado en el servidor devolverá una hora de clúster que se puede usar aquí. Solo se reconoce en las versiones de servidor 4.0y posteriores.

  • :comment (Objeto)

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

  • :mostrar eventos expandidos (Booleano)

    Permite que el servidor envíe la lista ampliada de eventos del flujo de cambios. La lista de eventos adicionales incluidos con este conjunto de indicadores es: createIndexes, dropIndexes, modify, create, shardCollection, reshardCollection y refineCollectionShardKey.

  • :timeout_mode (:tiempo de vida del cursor |:iteración)

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

  • :tiempo de espera_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 de espera ms]
  vista::ChangeStream.Nuevo(vista.Nuevo(yo, {}, view_options), pipeline, nulo, opciones)
end

#con(nuevas_opciones) ⇒ 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 (Hash)

    Las nuevas opciones a utilizar.

Opciones Hash(new_options):

  • :leer (Hash)

    Las opciones de preferencia de lectura. El hash puede contener 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*
      
  • :escribir (Hash)

    Obsoleto. Equivalente a la opción :write_concern.

  • :escribir_preocupación (Hash)

    Las opciones de escritura pueden ser: :w => Entero|Cadena, :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 no ser que OPCIONES CAMBIABLES.¿incluir?(k)
  end
  opciones = @opciones.dup
  Si opciones[:escribir] && nuevas_opciones[:escribir_preocupación]
    opciones.borrar(:escribir)
  end
  Si opciones[:escribir_preocupación] && nuevas_opciones[:escribir]
    opciones.borrar(:escribir_preocupación)
  end
  Colección.Nuevo(database, Nombre, opciones.update(nuevas_opciones))
end

#escribir_preocupaciónMongo::WriteConcern

Obtenga la preocupación de escritura efectiva en esta colección.

Si se proporcionó una inquietud de escritura en las opciones de colección, se devolverá dicha inquietud de escritura; de lo contrario, se devolverá la inquietud de escritura efectiva 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 ||= Escribir preocupación.Obtener(
    opciones[:escribir_preocupación] || opciones[:escribir] || 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.¿admitido?
      opta = wc.opciones.dup
      opta.borrar(:w)
      return Escribir preocupación.Obtener(opta)
    end
  end
  wc
end