Clase: Mongo::Colección
- Hereda:
-
Objeto
- Objeto
- Mongo::Colección
- 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.
Definido en el espacio de nombres
Modules: Asistentes, QueryableEncryption Clases: Ver
Colapso delresumen constante
- CAPPED =
La opción limitada.
'tapado '.freeze
- NS =
La constante de campo ns.
'ns'.freeze
- OPCIONES_CAMBIABLES =
Opciones que se pueden actualizar en una nueva instancia de colección a través del método #with.
[ :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.
{ :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
-
#database ⇒ Mongo::Database
solo lectura
La base de datos en la que reside la colección.
-
#nombre ⇒ Cadena
solo lectura
El nombre de la colección.
-
#options ⇒ Hash
solo lectura
Las opciones de colección.
Colapso del resumen del método de instancia
-
#==(otro) ⇒ verdadero | falso
Comprueba si una colección es igual a otro objeto.
-
#agregado(tubería, opciones = {}) ⇒ Vista::Agregación
Realizar una agregación en la colección.
-
#bulk_write(solicitudes, opciones = {}) ⇒ BulkWrite::Result
Ejecutar un lote de operaciones de escritura masiva.
-
#¿limitado? ⇒ verdadero | falso
¿La colección tiene límite?
-
#count(filtro = nulo, opciones = {}) ⇒ Entero
Obsoleto
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 -
#count_documents(filtro = {}, opciones = {}) ⇒ Entero
Obtiene el número de documentos que coinciden con la consulta.
-
#crear(opts = {}) ⇒ Resultado
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 = nulo, opciones = {}) ⇒ Resultado
Eliminar un documento de la colección.
-
#distinto(nombre_del_campo, filtro = nulo, opciones = {}) ⇒ Matriz<Object>
Obtenga una lista de valores distintos para un campo específico.
-
#drop(opts = {}) ⇒ Resultado
Descarta la colección.
-
#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.
-
#find(filtro = nil, options = {}) ⇒ CollectionView
Buscar documentos en la colección.
-
#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.
-
#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.
-
#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.
-
#indexes(options = {}) ⇒ Index::View
Obtenga una vista de todos los índices de esta colección.
-
#inicializar(base de datos, nombre, opciones = {}) ⇒ Colección
constructor
Crear una nueva colección.
-
#insert_many(documentos,opciones = {}) ⇒ Resultado
Inserta los documentos proporcionados en la colección.
-
#insert_one(documento, opts = {}) ⇒ Resultado
Insertar un solo documento en la colección.
-
#inspeccionar ⇒ Cadena
Obtenga una bonita inspección de cuerda impresa para la colección.
-
# espacio de nombres ⇒ Cadena
Obtenga el espacio de nombres completo de la colección.
-
#tiempos_de_espera_de_operación(opciones = {}) ⇒ Hash
privada
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).
-
#escaneo_paralelo(número_de_cursores, opciones = {}) ⇒ Array<Cursor>
Ejecutar un escaneo paralelo en la vista de colección.
-
#leer_preocupación ⇒ Hash
Obtenga la preocupación de lectura efectiva 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.
-
#índices_de_búsqueda(opciones = {}) ⇒ ÍndiceDeBúsqueda::Ver
Obtenga una vista de todos los índices de búsqueda para esta colección.
-
#server_selector ⇒ Mongo::ServerSelector
Obtenga el selector de servidor para esta colección.
-
#colección_del_sistema? ⇒ Booleano
privada
Si la colección es una colección de sistema.
-
#timeout_ms ⇒ Integer | nil
privada
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.
-
#watch(tubería = [], opciones = {}) ⇒ ChangeStream
A partir de la versión 3.6 del servidor MongoDB, se admite una etapa de canalización “$changeStream” en el marco de agregación.
-
#con(nuevas_opciones) ⇒ Mongo::Collection
Una nueva instancia de colección.
-
#escribir_preocupación ⇒ Mongo::WriteConcern
Obtenga la preocupación de escritura efectiva en esta colección.
-
#write_concern_with_session(sesión) ⇒ Mongo::WriteConcern
privada
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
#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.
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 no ser que Nombre Si [:escribir] && [:escribir_preocupación] && [:escribir] != [: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 = .dup @timeout_ms = .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
#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 ⇒ Cadena (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 colección.
52 53 54 |
# Archivo 'lib/mongo/collection.rb', línea 52 def @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.
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 && == otros. end |
#agregado(tubería, opciones = {}) ⇒ Vista::Agregación
Realizar una agregación en la colección.
568 569 570 |
# Archivo 'lib/mongo/collection.rb', línea 568 def Agregar(pipeline, = {}) vista.Nuevo(yo, {}, ).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 escritura masiva(solicitudes, = {}) Escritura masiva.Nuevo(yo, solicitudes, ).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 ¿tapado? database.listas_colecciones(filtrar: { nombre: Nombre }) .primera &.dig('options', CAPPADO) || false end |
#count(filtro = nulo, opciones = {}) ⇒ Entero
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.
685 686 687 |
# Archivo 'lib/mongo/collection.rb', línea 685 def count(filtro = nulo, = {}) vista.Nuevo(yo, filtro || {}, ).count() 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.
719 720 721 |
# Archivo 'lib/mongo/collection.rb', línea 719 def contar_documentos(filtro = {}, = {}) vista.Nuevo(yo, 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 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. = Picadillo[yo..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 .key?(clave rubí) [clave_del_servidor] = .borrar(clave rubí) end end operación = { :crear => Nombre }.unir() 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: [:colación] || ['colación '], campos cifrados: campos cifrados, validator: [:validator], ).ejecutar( siguiente_primaria(nulo, sesión), context: context ) end end end |
#delete_many(filtro = nulo, opciones = {}) ⇒ Resultado
Eliminar documentos de la colección.
994 995 996 |
# Archivo 'lib/mongo/collection.rb', línea 994 def eliminar_muchos(filtro = nulo, = {}) buscar(filtro, ).eliminar_muchos() 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>
Obtenga una lista de valores distintos para un campo específico.
771 772 773 |
# Archivo 'lib/mongo/collection.rb', línea 771 def distinct(nombre_del_campo, filtro = nulo, = {}) vista.Nuevo(yo, filtro || {}, ).distinct(nombre_del_campo, ) end |
#descartar(opts = {}) ⇒ Result
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.
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.
744 745 746 |
# Archivo 'lib/mongo/collection.rb', línea 744 def recuento estimado de documentos( = {}) vista.Nuevo(yo, {}, ).recuento estimado de documentos() 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(yo, filtro || {}, ) 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.
1167 1168 1169 |
# Archivo 'lib/mongo/collection.rb', línea 1167 def encontrar_uno_y_eliminar(filtro, = {}) buscar(filtro, ).encontrar_uno_y_eliminar() 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.
1253 1254 1255 |
# Archivo 'lib/mongo/collection.rb', línea 1253 def encontrar_uno_y_reemplazar(filtro, sustitución, = {}) buscar(filtro, ).find_one_and_update(sustitución, ) 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.
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(yo, ) 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.espacio de nombres claro(namespace) inserts = Documentos.map{ |doc| { :insert_one => doc }} escritura masiva(inserts, ) end |
#insert_one(documento, opts = {}) ⇒ Resultado
Insertar 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.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.[: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 |
#inspeccionar ⇒ Cadena
Obtenga una bonita inspección de cuerda impresa para la colección.
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.
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).
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.
1025 1026 1027 |
# Archivo 'lib/mongo/collection.rb', línea 1025 def escaneo paralelo(recuento de cursores, = {}) buscar({}, ).escaneo paralelo(recuento de cursores, ) end |
#leer_preocupación ⇒ Hash
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.
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 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.
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 reemplazar_uno(filtro, sustitución, = {}) buscar(filtro, ).reemplazar_uno(sustitución, ) end |
#índices_de_búsqueda(opciones = {}) ⇒ ÍndiceDeBúsqueda::Ver
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.
810 811 812 |
# Archivo 'lib/mongo/collection.rb', línea 810 def search_indexes( = {}) Índice de búsqueda::vista.Nuevo(yo, ) end |
#selector_de_servidor ⇒ Mongo::ServerSelector
Obtenga el selector de servidor para esta colección.
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.
1274 1275 1276 |
# Archivo 'lib/mongo/collection.rb', línea 1274 def ¿colección_del_sistema? Nombre.empezar_con?(' sistema. ') 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 tiempo de espera_ms @timeout_ms || database.tiempo de espera_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 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.
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 de espera ms] vista::ChangeStream.Nuevo(vista.Nuevo(yo, {}, ), pipeline, nulo, ) end |
#con(nuevas_opciones) ⇒ 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 no ser que OPCIONES CAMBIABLES.¿incluir?(k) end = @opciones.dup Si [:escribir] && [:escribir_preocupación] .borrar(:escribir) end Si [:escribir_preocupación] && [:escribir] .borrar(:escribir_preocupación) end Colección.Nuevo(database, Nombre, .update()) end |
#escribir_preocupación ⇒ Mongo::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.
237 238 239 240 |
# Archivo 'lib/mongo/collection.rb', línea 237 def escribir_preocupación @write_concern ||= Escribir preocupación.Obtener( [:escribir_preocupación] || [: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.
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..dup opta.borrar(:w) return Escribir preocupación.Obtener(opta) end end wc end |