Clase: Mongo::Collection
- Hereda:
-
Objeto
- Objeto
- Mongo::Collection
- 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.
Definido bajo Namespace
Modules: Asistentes, QueryableEncryption Clases: Ver
Resumen de constantes colapsar
- CAPPED =
La opción limitada.
'límite máximo'- NS =
La constante del campo ns.
'ns'- CAMBIABLE_OPTIONS =
Opciones que se pueden actualizar en una nueva instancia de la colección a través del método #with.
%i[Lea read_concern guardar write_concern].freeze
- CREATE_COLLECTION_OPTIONS =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Opciones mapa para transformar opciones de creación de colección.
{ time_series: series temporales, expire_after: expireAfterSeconds, clustered_index: :clusteredIndex, change_stream_pre_and_post_images: Imágenes anteriores y posteriores del flujo de cambio:, campos_encriptados: camposCifrados, validator: :validator, view_on: Consulte en }
Constantes incluidas de QueryableEncryption
QueryableEncryption::QE2_MIN_WIRE_VERSION
Resumen de atributos de la instancia colapsar
-
#database ⇒ Mongo::Database
Solo lectura
La base de datos en la que reside la colección.
-
#nombre ⇒ String
Solo lectura
El nombre de la colección.
-
#options ⇒ Hash
Solo lectura
Las opciones de colección.
Resumen del método de instancia colapsar
-
#==(other) ⇒ true | false.
Verifique si una colección es igual a otro objeto.
-
#aggregate(pipeline, options = {}) ⇒ View::agregación
Realiza una agregación en la colección.
-
#bulk_write(requests, options = {}) ⇒ BulkWrite::Result
Ejecute un lote de operaciones de escritura masiva.
-
#¿limitado? ⇒ verdadero | falso
¿La colección está limitada?
-
#count(filtro = nil, options = {}) ⇒ Integer
Obsoleto
Obsoleto.
Utiliza #count_documents o estimated_document_count en su lugar. Sin embargo, tenga en cuenta que los siguientes operadores deberán ser sustituidos al cambiar a #count_documents:
* $where should be replaced with $expr * $near should be replaced with $geoWithin with $center * $nearSphere should be replaced with $geoWithin with $centerSphere -
#count_documents(filtro = {}, opciones = {}) ⇒ Entero
Obtiene el número de documentos que coinciden con la query.
-
#create(opts = {}) ⇒ Result
Forzar la creación de la colección en la base de datos.
-
#delete_many(filtro = nil, options = {}) ⇒ Result
Remover documentos de la colección.
-
#delete_one(filtro = nil, opciones = {}) ⇒ Resultado
Remover un documento de la colección.
-
#distinct(field_name, filtro = nil, options = {}) ⇒ arreglo<Object>
Obtén una lista de valores distintos para un campo específico.
-
#descartar(opts = {}) ⇒ Resultado
Descarta la colección.
-
#estimated_document_count(options = {}) ⇒ Integer
Obtiene una estimación de la cantidad de documentos en la colección usando los metadatos de la colección.
-
#find(filtro = nil, options = {}) ⇒ CollectionView
Buscar documentos en la colección.
-
#find_one_and_delete(filtro, options = {}) ⇒ BSON::documento?
Encuentra un solo documento en la base de datos a través de findAndModify y lo elimina, devolviendo el documento original.
-
#find_one_and_replace(filtro, replacement, options = {}) ⇒ BSON::Documento
Encuentra un solo documento y lo reemplaza, devolviendo el documento original a menos que se especifique lo contrario.
-
#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.
-
#indexes(options = {}) ⇒ Index::View
Obtener una vista de todos los índices para esta colección.
-
#initialize(base de datos, nombre, opciones = {}) ⇒ colección
constructor
Instancie una nueva colección.
-
#insert_many(documents, opciones = {}) ⇒ Result
Inserta los documentos proporcionados en la colección.
-
#insert_one(documento, opts = {}) ⇒ Resultados
Inserta un solo documento en la colección.
-
#inspect ⇒ string
Obtén una revisión de la colección con impresión elegante string.
-
#namespace ⇒ String
Obtener el namespace completamente calificado de la colección.
-
#operation_timeouts(opciones = {}) ⇒ Hash
privado
Valor timeout_ms configurado a nivel de operación (si lo hay), y/o timeout_ms configurado a nivel de colección/base de datos/cliente (si lo hay).
-
#parallel_scan(cursor_count, options = {}) ⇒ Array<Cursor>
Ejecuta un escaneo paralelo en la colección.
-
#read_concern ⇒ Hash
Obtén el nivel de consistencia de lectura efectivo para esta instancia de colección.
-
#read_preference ⇒ Hash
Obtenga la preferencia de lectura efectiva para esta colección.
-
#replace_one(filter, replacement, options = {}) ⇒ Resultado
Reemplaza un solo documento en la colección con el nuevo documento.
-
#search_indexes(opciones = {}) ⇒ SearchIndex::View
Obtenga una vista de todos los índices de búsqueda para esta colección.
-
#server_selector ⇒ Mongo::ServerSelector
Obtén el selector de servidor para esta colección.
-
#system_collection? ⇒ Booleano
privado
Indica si la colección es una colección del sistema.
-
#timeout_ms ⇒ Integer | nil
privado
Tiempo de espera de la operación que es para esta base de datos o para el cliente correspondiente.
-
#update_many(filter, update, options = {}) ⇒ Result
Actualizar documentos en la colección.
-
#update_one(filter, update, options = {}) ⇒ Result
Actualiza un solo documento en la colección.
-
#ver(pipeline = [], options = {}) ⇒ ChangeStream
Permite que los usuarios soliciten que se envíen notificaciones por todos los cambios en una colección específica.
-
#con(new_options) ⇒ Mongo::Collection
Una nueva instancia de colección.
-
#write_concern ⇒ Mongo::WriteConcern
Obtén el nivel de confirmación de escritura (write concern) efectivo en esta colección.
-
#write_concern_with_session(session) ⇒ Mongo::WriteConcern
privado
Obtenga el nivel de confirmación de escritura (write concern) para utilizar en una operación en esta colección, dada una sesión.
Métodos proporcionados por Asistentes
Métodos incluidos de QueryableEncryption
#maybe_create_qe_collections, #maybe_drop_emm_collections
Métodos incluidos de Retryable
#read_worker, #select_server, #with_overload_retry, #write_worker
Detalles del Constructor
#initialize(base de datos, name, options = {}) ⇒ Collection
Instancie una nueva colección.
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 |
# Archivo 'lib/mongo/collection.rb', línea 163 def inicializar(database, Nombre, = {}) propagar Error::InvalidCollectionName.Nuevo a menos que Nombre si [guardar] && [conformidad_de_lectura] && [guardar] != [conformidad_de_lectura] propagar ArgumentError, "Si :guardar y :write_concern se dan ambos, deben ser idénticos: #{.inspect}" end @database = database @name = Nombre.to_s.freeze @options = .dup @timeout_ms = .borrar(:timeout_ms) # Soporte de objetos WriteConcern # si @options[:write_concern].is_a?(WriteConcern::Base) # # Guardar en caché la instancia para que no tengamos que reconstruirla innecesariamente. # @write_concern = @options[:write_concern] # @opciones[:write_concern] = @write_concern.opciones # end @options.freeze end |
Detalles de atributo de instancias
#database ⇒ Mongo::Database (readonly)
Devuelve La base de datos en la que reside la colección.
44 45 46 |
# Archivo 'lib/mongo/collection.rb', línea 44 def database @database end |
#nombre ⇒ string (solo lectura)
Devuelve El nombre de la colección.
47 48 49 |
# Archivo 'lib/mongo/collection.rb', línea 47 def Nombre @name end |
#opciones ⇒ Hash (solo lectura)
Devuelve las opciones de la colección.
50 51 52 |
# Archivo 'lib/mongo/collection.rb', línea 50 def @options end |
Detalles del método de instancia
#==(another) ⇒ verdadero | falso
Comprueba si una colección es igual a otro objeto. Verificará la igualdad entre el nombre y la base de datos.
89 90 91 92 93 |
# 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 && == Otros. end |
#aggregate(pipeline, options = {}) ⇒ View::agregación
Realiza una agregación en la colección.
567 568 569 |
# Archivo 'lib/mongo/collection.rb', línea 567 def Agregar(pipeline, = {}) vista.Nuevo(sí mismo, {}, ).Agregar(pipeline, ) end |
#bulk_write(solicitudes, opciones = {}) ⇒ BulkWrite::Result
Ejecute un lote de operaciones de escritura masiva.
939 940 941 |
# Archivo 'lib/mongo/collection.rb', línea 939 def bulk_write(solicitud, = {}) Guardado masivo.Nuevo(sí mismo, solicitud, ).ejecutar end |
#¿limitado? ⇒ true | false
¿La colección tiene un límite?
317 318 319 320 321 |
# Archivo 'lib/mongo/collection.rb', línea 317 def ¿limitado? database.list_collections(filtro: { nombre: Nombre }) .primero &.dig('options', CAPITALIZADO) || false end |
#count(filter = nil, options = {}) ⇒ Integer
Utiliza #count_documents o estimated_document_count en su lugar. Sin embargo, tenga en cuenta que los siguientes operadores deberán ser sustituidos al cambiar a #count_documents:
* $where should be replaced with $expr
* $near should be replaced with $geoWithin with $center
* $nearSphere should be replaced with $geoWithin with $centerSphereObtiene un número estimado de documentos coincidentes en la colección.
681 682 683 |
# Archivo 'lib/mongo/collection.rb', línea 681 def count(filtro = nulo, = {}) vista.Nuevo(sí mismo, filtro || {}, ).count() 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.
715 716 717 |
# Archivo 'lib/mongo/collection.rb', línea 715 def contar_documentos(filtro = {}, = {}) vista.Nuevo(sí mismo, filtro, ).contar_documentos() end |
#crear(opts = {}) ⇒ Resultado
Forzar la creación de la colección en la base de datos.
378 379 380 381 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 |
# Archivo 'lib/mongo/collection.rb', línea 378 def Cree(opciones = {}) # 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 poner la lista de opciones de lectura en una constante a nivel de clase cuando # descubrimos cuál es el conjunto completo de ellos. = encriptada[sí mismo..fusionar(opciones).rechazar hacer |llave, _valor| %w[Lea read_preference read_concern 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| [server_key] = .borrar(ruby_key) si .key?(ruby_key) end Operación = { crear: Nombre }.fusionar() Operación.borrar(guardar) Operación.borrar(conformidad_de_lectura) Cliente.enviar(con_sesión, opciones) hacer |sesión| write_concern = si opciones[conformidad_de_lectura] Nivel de confirmación de escritura (write concern).Obtener(opciones[conformidad_de_lectura]) else sí mismo.write_concern end context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión ) Operación = Operación::Crear.Nuevo( selector: Operación, db_name: database.Nombre, write_concern: write_concern, 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: [intercalación] || ['intercalación'], validator: [:validator] ) trazador.trace_operation(Operación, context, op_name: 'createCollection') hacer maybe_create_qe_collections(opciones[:encrypted_fields], Cliente, sesión) hacer |encrypted_fields| Operación.encrypted_fields = encrypted_fields Operación.ejecutar( siguiente_principal(nulo, sesión), context: context ) end end end end |
#delete_many(filtro = nil, opciones = {}) ⇒ Result
Remover documentos de la colección.
991 992 993 |
# Archivo 'lib/mongo/collection.rb', línea 991 def borrar_varios(filtro = nulo, = {}) buscar(filtro, ).borrar_varios() end |
#delete_one(filtro = nil, options = {}) ⇒ Result
Remover un documento de la colección.
965 966 967 |
# Archivo 'lib/mongo/collection.rb', línea 965 def delete_one(filtro = nulo, = {}) buscar(filtro, ).delete_one() end |
#distinct(nombre_del_campo, filtro = nil, opciones = {}) ⇒ Array<Object>
Obtén una lista de valores distintos para un campo específico.
767 768 769 |
# Archivo 'lib/mongo/collection.rb', línea 767 def distinct(field_name, filtro = nulo, = {}) vista.Nuevo(sí mismo, filtro || {}, ).distinct(field_name, ) end |
#descartar(opts = {}) ⇒ Result
Se suprime un error devuelto si la colección no existe.
Descarte la colección. También descartará todos los índices asociados con la colección, así como las colecciones asociadas compatibles con Queryable Encryption.
451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 |
# Archivo 'lib/mongo/collection.rb', línea 451 def descartar(opciones = {}) Cliente.con_sesión(opciones) hacer |sesión| context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: operation_timeouts(opciones) ) temp_write_concern = write_concern write_concern = si opciones[conformidad_de_lectura] Nivel de confirmación de escritura (write concern).Obtener(opciones[conformidad_de_lectura]) else temp_write_concern end Operación = Operación::Descartar.Nuevo({ selector: { descartar: Nombre }, db_name: database.Nombre, write_concern: write_concern, sesión: sesión, }) trazador.trace_operation(Operación, context, op_name: 'dropCollection') hacer maybe_drop_emm_collections(opciones[:encrypted_fields], Cliente, sesión) hacer do_drop(Operación, sesión, context) end end end end |
#estimated_document_count(opciones = {}) ⇒ Integer
Obtiene una estimación de la cantidad de documentos en la colección usando 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.
740 741 742 |
# Archivo 'lib/mongo/collection.rb', línea 740 def estimated_document_count( = {}) vista.Nuevo(sí mismo, {}, ).estimated_document_count() end |
#find(filtro = nil, options = {}) ⇒ CollectionView
Buscar documentos en la colección.
531 532 533 |
# Archivo 'lib/mongo/collection.rb', línea 531 def buscar(filtro = nulo, = {}) vista.Nuevo(sí mismo, filtro || {}, ) 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.
1164 1165 1166 |
# Archivo 'lib/mongo/collection.rb', línea 1164 def find_one_and_delete(filtro, = {}) buscar(filtro, ).find_one_and_delete() 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.
1250 1251 1252 |
# Archivo 'lib/mongo/collection.rb', línea 1250 def find_one_and_replace(filtro, reemplazo, = {}) buscar(filtro, ).find_one_and_update(reemplazo, ) 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.
1208 1209 1210 |
# Archivo 'lib/mongo/collection.rb', línea 1208 def find_one_and_update(filtro, update, = {}) buscar(filtro, ).find_one_and_update(update, ) end |
#indexes(options = {}) ⇒ Index::View
Obtén una vista de todos los índices de esta colección. Puede ser iterado o tener más operaciones.
784 785 786 |
# Archivo 'lib/mongo/collection.rb', línea 784 def indexes( = {}) Index::vista.Nuevo(sí mismo, ) end |
#insert_many(documentos, opciones = {}) ⇒ Result
Inserta los documentos proporcionados en la colección.
907 908 909 910 911 912 |
# Archivo 'lib/mongo/collection.rb', línea 907 def insert_many(Documentos, = {}) QueryCache.clear_namespace(namespace) inserts = Documentos.map { |doc| { insert_one: doc } } bulk_write(inserts, ) end |
#insert_one(document, opts = {}) ⇒ Result
Inserta un solo documento en la colección.
845 846 847 848 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 |
# Archivo 'lib/mongo/collection.rb', línea 845 def insert_one(Documento, opciones = {}) QueryCache.clear_namespace(namespace) Cliente.con_sesión(opciones) hacer |sesión| write_concern = si opciones[conformidad_de_lectura] Nivel de confirmación de escritura (write concern).Obtener(opciones[conformidad_de_lectura]) else write_concern_with_session(sesión) end propagar ArgumentError, 'El documento a insertar no puede ser nulo' si Documento.nil? context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: operation_timeouts(opciones) ) Operación = Operación::Insert.Nuevo( documento: [ Documento ], db_name: database.Nombre, coll_name: Nombre, write_concern: write_concern, bypass_document_validation: !!opciones[:evitar_validación_del_documento], opciones: opciones, id_generator: Cliente.[generador_de_id], sesión: sesión, comment: opciones[:comment] ) trazador.trace_operation(Operación, context) hacer escribir_con_reintento(write_concern, context: context) hacer |Conexión, txn_num, context| Operación.txn_num = txn_num Operación.execute_with_connection(Conexión, context: context) end end end end |
#inspect ⇒ String
Obtén una revisión de la colección con impresión elegante string.
818 819 820 |
# Archivo 'lib/mongo/collection.rb', línea 818 def inspeccionar "#<Mongo::Collection:0x#{object_id} namespace=#{namespace}>" end |
#namespace ⇒ String
Obtener el namespace completamente calificado de la colección.
1262 1263 1264 |
# Archivo 'lib/mongo/collection.rb', línea 1262 def namespace "#{base de datos.nombre}.#{nombre}" end |
#operation_timeouts(opts = {}) ⇒ Hash
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
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).
1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 |
# Archivo 'lib/mongo/collection.rb', línea 1287 def operation_timeouts(opciones = {}) # TODO: Deberíamos volver a evaluar si necesitamos dos tiempos de espera por separado. {}.tocar hacer |Resultado| si opciones[:timeout_ms].nil? Resultado[timeout_inherente_ms] = timeout_ms else Resultado[:operation_timeout_ms] = opciones.borrar(:timeout_ms) end end end |
#parallel_scan(cursor_count, options = {}) ⇒ arreglo<Cursor>
Ejecuta un escaneo paralelo en la colección.
Devuelve una lista de hasta cursor_count cursores que pueden ser iterados de forma concurrente. Siempre que la colección no se modifique durante el escaneo, cada documento aparecerá una vez en uno de los conjuntos de resultados de los cursores.
1022 1023 1024 |
# Archivo 'lib/mongo/collection.rb', línea 1022 def exploración paralela(cursor_count, = {}) buscar({}, ).exploración paralela(cursor_count, ) end |
#read_concern ⇒ Hash
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 la 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.
194 195 196 |
# Archivo 'lib/mongo/collection.rb', línea 194 def read_concern [:read_concern] || database.read_concern end |
#read_preference ⇒ Hash
Obtenga la preferencia de lectura efectiva para esta colección.
Si se proporcionó una preferencia de lectura en las opciones de la colección, se devolverá esa preferencia de lectura; de lo contrario, se devolverá la preferencia de lectura efectiva de la base de datos.
222 223 224 |
# Archivo 'lib/mongo/collection.rb', línea 222 def read_preference @read_preference ||= [:leer] || database.read_preference end |
#replace_one(filtro, reemplazo, opciones = {}) ⇒ Resultado
Reemplaza un solo documento en la colección con el nuevo documento.
1058 1059 1060 |
# Archivo 'lib/mongo/collection.rb', línea 1058 def replace_one(filtro, reemplazo, = {}) buscar(filtro, ).replace_one(reemplazo, ) end |
#search_indexes(opciones = {}) ⇒ SearchIndex::View
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 para esta colección. Puede ser iterado u operado directamente. Si se proporciona el ID o el nombre, el iterador devolverá solo el índice indicado. Para todas las demás operaciones, se omiten el ID y el nombre.
806 807 808 |
# Archivo 'lib/mongo/collection.rb', línea 806 def search_indexes( = {}) searchIndex::vista.Nuevo(sí mismo, ) end |
#server_selector ⇒ Mongo::ServerSelector
Obtén el selector de servidor para esta colección.
206 207 208 |
# Archivo 'lib/mongo/collection.rb', línea 206 def selector_de_servidor @server_selector ||= ServerSelector.Obtener(read_preference || database.selector_de_servidor) end |
#system_collection? ⇒ Booleano
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Indica si la colección es una colección del sistema.
1271 1272 1273 |
# Archivo 'lib/mongo/collection.rb', línea 1271 def system_collection? Nombre.start_with?('system.') end |
#timeout_ms ⇒ Integer | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve Operation timeout que es para esta base de datos o para el cliente correspondiente.
1279 1280 1281 |
# Archivo 'lib/mongo/collection.rb', línea 1279 def timeout_ms @timeout_ms || database.timeout_ms end |
#update_many(filter, update, options = {}) ⇒ Result
Actualizar documentos en la colección.
1091 1092 1093 |
# Archivo 'lib/mongo/collection.rb', línea 1091 def update_many(filtro, update, = {}) buscar(filtro, ).update_many(update, ) end |
#update_one(filter, update, options = {}) ⇒ Result
Actualiza un solo documento en la colección.
1129 1130 1131 |
# Archivo 'lib/mongo/collection.rb', línea 1129 def update_one(filtro, update, = {}) buscar(filtro, ).update_one(update, ) end |
#observar(pipeline = [], options = {}) ⇒ ChangeStream
Un flujo de cambios solo permite un nivel de consistencia de lectura "mayoría".
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.
Permite que los usuarios soliciten que se envíen notificaciones por todos los cambios en una colección específica.
642 643 644 645 646 |
# Archivo 'lib/mongo/collection.rb', línea 642 def reloj(pipeline = [], = {}) = .dup [tipo_de_cursor] = tailable_await si [; tiempo_máximo_espera_ms] vista::ChangeStream.Nuevo(vista.Nuevo(sí mismo, {}, ), pipeline, nulo, ) end |
#con(new_options) ⇒ Mongo::Collection
Devuelve una nueva instancia de colección.
299 300 301 302 303 304 305 306 307 |
# Archivo 'lib/mongo/collection.rb', línea 299 def con() .claves.cada hacer |k| propagar Error::UnchangeableCollectionOption.Nuevo(k) a menos que OPCIONES MODIFICABLES.incluir?(k) end = @options.dup .borrar(guardar) si [guardar] && [conformidad_de_lectura] .borrar(conformidad_de_lectura) si [conformidad_de_lectura] && [guardar] Colección.Nuevo(database, Nombre, .update()) end |
#write_concern ⇒ Mongo::WriteConcern
Obtén el nivel de confirmación de escritura (write concern) efectivo en esta colección.
Si se proporcionó 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.
238 239 240 241 242 |
# Archivo 'lib/mongo/collection.rb', línea 238 def write_concern @write_concern ||= Nivel de confirmación de escritura (write concern).Obtener( [conformidad_de_lectura] || [guardar] || database.write_concern ) end |
#write_concern_with_session(session) ⇒ Mongo::WriteConcern
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
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 un nivel de confirmación de escritura (write concern) no reconocido, remueva la opción :w del nivel de confirmación de escritura (write concern). De lo contrario, devuelve el nivel de confirmación de escritura (write concern) sin modificar.
255 256 257 258 259 260 261 262 263 |
# Archivo 'lib/mongo/collection.rb', línea 255 def write_concern_with_session(sesión) wc = write_concern si sesión && sesión.en_transacción? && wc && !wc.¿entendido? opciones = wc..dup opciones.borrar(:w) return Nivel de confirmación de escritura (write concern).Obtener(opciones) end wc end |