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
Colapso delresumen constante
- CAPPED =
La opción limitada.
'tapado '.freeze
- NS =
La constante del campo ns.
'ns'.freeze
- CAMBIABLE_OPTIONS =
Opciones que se pueden actualizar en una nueva instancia de la colección a través del método #with.
[ :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.
{ 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
-
#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
-
#==(otro) ⇒ verdadero | falso
Verifique si una colección es igual a otro objeto.
-
#agregado(tubería, opciones = {}) ⇒ Vista::Agregación
Realiza una agregación en la colección.
-
#bulk_write(requests, options = {}) ⇒ BulkWrite::Result
Ejecutar 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 (only works on 3.6+) * $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 = nulo, opciones = {}) ⇒ Resultado
Eliminar documentos de la colección.
-
#delete_one(filtro = nil, opciones = {}) ⇒ Resultado
Eliminar un documento de la colección.
-
#distinto(nombre_del_campo, filtro = nulo, opciones = {}) ⇒ Matriz<Object>
Obtén una lista de valores distintos para un campo específico.
-
#drop(opts = {}) ⇒ Resultado
Descarta la colección.
-
#estimated_document_count(options = {}) ⇒ Integer
Obtiene una estimación de la cantidad de documentos en la colección utilizando 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
Obtenga una vista de todos los índices de esta colección.
-
#initialize(base de datos, nombre, opciones = {}) ⇒ colección
constructor
Instancie una nueva colección.
-
#insert_many(documentos,opciones = {}) ⇒ Resultado
Inserta los documentos proporcionados en la colección.
-
#insert_one(documento, opts = {}) ⇒ Resultados
Inserta un solo documento en la colección.
-
#inspeccionar ⇒ Cadena
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.
-
#preferencia_de_lectura ⇒ Hash
Obtenga la preferencia de lectura efectiva para esta colección.
-
#replace_one(filtro, reemplazo, opciones = {}) ⇒ Resultado
Reemplaza un solo documento de 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
Si la colección es una colección de 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
A partir de la versión 3.6 del servidor MongoDB, se admite una etapa de pipeline "$changeStream" en el framework de agregación.
-
#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 incluidos de Helpers
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.
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, = {}) propagar Error::InvalidCollectionName.Nuevo a menos que Nombre si [guardar] && [:escribir_preocupación] && [guardar] != [:escribir_preocupación] 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) =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
#database ⇒ Mongo::Database (readonly)
Devuelve la base de datos en la que reside la colección.
46 47 48 |
# Archivo 'lib/mongo/collection.rb', línea 46 def database @database end |
#nombre ⇒ string (solo lectura)
Devuelve El nombre de la colección.
49 50 51 |
# Archivo 'lib/mongo/collection.rb', línea 49 def Nombre @name end |
#opciones ⇒ Hash (solo lectura)
Devuelve las opciones de la colección.
52 53 54 |
# Archivo 'lib/mongo/collection.rb', línea 52 def @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.
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 && == Otros. end |
#aggregate(pipeline, options = {}) ⇒ View::agregación
Realiza una agregación en la colección.
568 569 570 |
# Archivo 'lib/mongo/collection.rb', línea 568 def Agregar(pipeline, = {}) vista.Nuevo(sí mismo, {}, ).Agregar(pipeline, ) end |
#bulk_write(solicitudes, opciones = {}) ⇒ BulkWrite::Result
Ejecutar un lote de operaciones de escritura masiva.
942 943 944 |
# Archivo 'lib/mongo/collection.rb', línea 942 def bulk_write(solicitud, = {}) Guardado masivo.Nuevo(sí mismo, solicitud, ).ejecutar end |
#¿limitado? ⇒ true | false
¿La colección tiene un límite?
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
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.
685 686 687 |
# Archivo 'lib/mongo/collection.rb', línea 685 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.
719 720 721 |
# Archivo 'lib/mongo/collection.rb', línea 719 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.
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. = Picadillo[sí mismo..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 .key?(ruby_key) [server_key] = .borrar(ruby_key) end end operación = { crear: => Nombre }.fusionar() 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: [:colación] || ['intercalación'], campos_encriptados: encrypted_fields, validator: [:validator], ).ejecutar( siguiente_principal(nulo, sesión), context: context ) end end end |
#delete_many(filtro = nil, opciones = {}) ⇒ Result
Eliminar documentos de la colección.
994 995 996 |
# Archivo 'lib/mongo/collection.rb', línea 994 def borrar_varios(filtro = nulo, = {}) buscar(filtro, ).borrar_varios() end |
#delete_one(filtro = nulo, opciones = {}) ⇒ Resultado
Eliminar un documento de la colección.
968 969 970 |
# Archivo 'lib/mongo/collection.rb', línea 968 def delete_one(filtro = nulo, = {}) buscar(filtro, ).delete_one() end |
#distinto(nombre_del_campo, filtro = nulo, opciones = {}) ⇒ Matriz<Object>
Obtén una lista de valores distintos para un campo específico.
771 772 773 |
# Archivo 'lib/mongo/collection.rb', línea 771 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.
Eliminar la colección. También se eliminarán todos los índices asociados a ella, así como las colecciones de cifrado consultables asociadas.
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.
744 745 746 |
# Archivo 'lib/mongo/collection.rb', línea 744 def estimated_document_count( = {}) vista.Nuevo(sí mismo, {}, ).estimated_document_count() end |
#buscar(filtro = nulo, opciones = {}) ⇒ CollectionView
Buscar documentos en la colección.
532 533 534 |
# Archivo 'lib/mongo/collection.rb', línea 532 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.
1167 1168 1169 |
# Archivo 'lib/mongo/collection.rb', línea 1167 def encontrar_uno_y_eliminar(filtro, = {}) buscar(filtro, ).encontrar_uno_y_eliminar() 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.
1253 1254 1255 |
# Archivo 'lib/mongo/collection.rb', línea 1253 def find_one_and_replace(filtro, sustitución, = {}) buscar(filtro, ).find_one_and_update(sustitución, ) 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.
1211 1212 1213 |
# Archivo 'lib/mongo/collection.rb', línea 1211 def find_one_and_update(filtro, update, = {}) buscar(filtro, ).find_one_and_update(update, ) end |
#indexes(options = {}) ⇒ Index::View
Obtenga una vista de todos los índices de esta colección. Se puede iterar o tener más operaciones.
788 789 790 |
# Archivo 'lib/mongo/collection.rb', línea 788 def indexes( = {}) Index::vista.Nuevo(sí mismo, ) end |
#insert_many(documentos,opciones = {}) ⇒ Resultado
Inserta los documentos proporcionados en la colección.
910 911 912 913 914 915 |
# Archivo 'lib/mongo/collection.rb', línea 910 def insert_many(Documentos, = {}) Caché de consultas.clear_namespace(namespace) inserts = Documentos.map{ |doc| { :insert_one => doc }} bulk_write(inserts, ) end |
#insert_one(documento, opts = {}) ⇒ Resultado
Inserta un solo documento en la colección.
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.[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 |
#inspect ⇒ String
Obtén una revisión de la colección con impresión elegante string.
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.
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).
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.
1025 1026 1027 |
# Archivo 'lib/mongo/collection.rb', línea 1025 def escaneo paralelo(cursor_count, = {}) buscar({}, ).escaneo paralelo(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 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.
193 194 195 |
# Archivo 'lib/mongo/collection.rb', línea 193 def leer_preocupación [:read_concern] || database.leer_preocupación end |
#preferencia_de_lectura ⇒ Hash
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.
221 222 223 |
# Archivo 'lib/mongo/collection.rb', línea 221 def read_preference @read_preference ||= [:leer] || database.read_preference end |
#replace_one(filtro, reemplazo, opciones = {}) ⇒ Resultado
Reemplaza un solo documento de la colección con el nuevo documento.
1061 1062 1063 |
# Archivo 'lib/mongo/collection.rb', línea 1061 def replace_one(filtro, sustitución, = {}) buscar(filtro, ).replace_one(sustitución, ) end |
#índices_de_búsqueda(opciones = {}) ⇒ ÍndiceDeBúsqueda::Ver
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.
810 811 812 |
# Archivo 'lib/mongo/collection.rb', línea 810 def search_indexes( = {}) Índice de búsqueda::vista.Nuevo(sí mismo, ) end |
#server_selector ⇒ Mongo::ServerSelector
Obtén el selector de servidor para esta colección.
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.
1274 1275 1276 |
# Archivo 'lib/mongo/collection.rb', línea 1274 def system_collection? Nombre.start_with?('system.') end |
#timeout_ms ⇒ Integer | 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.
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.
1094 1095 1096 |
# Archivo 'lib/mongo/collection.rb', línea 1094 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.
1132 1133 1134 |
# Archivo 'lib/mongo/collection.rb', línea 1132 def update_one(filtro, update, = {}) buscar(filtro, ).update_one(update, ) end |
#watch(tubería = [], opciones = {}) ⇒ ChangeStream
Un flujo de cambios solo permite el nivel de consistencia de lectura de '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.
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.
646 647 648 649 650 |
# Archivo 'lib/mongo/collection.rb', línea 646 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 308 309 310 311 |
# Archivo 'lib/mongo/collection.rb', línea 299 def con() .claves.cada hacer |k| propagar Error::Opción de colección inmutable.Nuevo(k) a menos que OPCIONES MODIFICABLES.incluir?(k) end = @options.dup si [guardar] && [:escribir_preocupación] .borrar(guardar) end si [:escribir_preocupación] && [guardar] .borrar(:escribir_preocupación) end 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 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.
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( [:escribir_preocupación] || [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.
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..dup opta.borrar(:w) return Nivel de confirmación de escritura (write concern).Obtener(opta) end end wc end |