Clase: Mongo::Database
- Hereda:
-
Objeto
- Objeto
- Mongo::Base de datos
- Ampliado por:
- Reenviable
- Incluye:
- Reutilizable
- Definido en:
- lib/mongo/database.rb,
lib/mongo/database/view.rb
Overview
Representa una base de datos en el servidor de base de datos y las operaciones que se pueden ejecutar en ella en este nivel.
Definido en el espacio de nombres
Clases: vista
Colapso delresumen constante
- ADMINISTRADOR =
El nombre de la base de datos de administración.
'administrador'.freeze
- COMANDO =
La “colección” sobre la que operan los comandos de base de datos.
'$cmd'.freeze
- OPCIONES_PREDETERMINADAS =
Las opciones de base de datos predeterminadas.
opciones::Redactado.Nuevo(:database => ADMINISTRACIÓN).freeze
- NOMBRE =
Obsoleto.
Constante del campo de nombre de base de datos.
'nombre '.freeze
- BASES DE DATOS =
Bases de datos constantes.
'databases'.freeze
- ESPACIOS DE NOMBRES =
El nombre de la colección que contiene todos los nombres de colecciones.
'sistema.espacios de nombres'.freeze
Colapso delresumen de atributos de instancia
-
#client ⇒ Client
solo lectura
Cliente El cliente de la base de datos.
-
#nombre ⇒ Cadena
solo lectura
Nombre El nombre de la base de datos.
-
#options ⇒ Hash
solo lectura
Opciones Las opciones.
Colapso delresumen del método de clase
-
.crear(cliente) ⇒ Base de datos
privada
Crea una base de datos para el cliente proporcionado, para usarla cuando no queremos que la instancia de base de datos original del cliente sea la misma.
Colapso del resumen del método de instancia
-
#==(otro) ⇒ true, false
Comprobar la igualdad del objeto de base de datos con respecto a otro.
-
#[](nombre_de_colección, opciones = {}) ⇒ Mongo::Collection (también: #colección)
Obtenga una colección en esta base de datos con el nombre proporcionado.
-
#agregado(tubería, opciones = {}) ⇒ Colección::Vista::Agregación
Realizar una agregación en la base de datos.
-
#cluster ⇒ Mongo::Server
Obtenga el servidor principal del clúster.
-
#nombres_de_colección(opciones = {}) ⇒ Array<String>
Obtenga todos los nombres de las colecciones que no son del sistema en la base de datos.
-
#colecciones(opciones = {}) ⇒ Array<Mongo::Collection>
Obtenga todas las colecciones que no son del sistema que pertenecen a esta base de datos.
-
#comando(operación, opts = {}) ⇒ Mongo::Operación::Resultado
Ejecutar un comando en la base de datos.
-
#drop(opciones = {}) ⇒ Resultado
Eliminar la base de datos y toda su información asociada.
-
#fs(options = {}) ⇒ Grid::FSBucket
Obtenga el “sistema de archivos” de Grid para esta base de datos.
-
#inicializar(cliente, nombre, opciones = {}) ⇒ Base de datos
constructor
Crear una instancia de un nuevo objeto de base de datos.
-
#inspeccionar ⇒ Cadena
Obtener una inspección de string impresa bonita para la base de datos.
-
#list_collections(opciones = {}) ⇒ Array<Hash>
Obtenga información sobre todas las colecciones que no son del sistema en la base de datos.
-
#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).
-
#read_command(operación, opts = {}) ⇒ Hash
privada
Ejecutar un comando de lectura en la base de datos, reintentando la lectura si es necesario.
-
#timeout_ms ⇒ Integer | nil
privada
Tiempo de espera de la operación que es para esta base de datos o para el cliente correspondiente.
-
#usuarios ⇒ Ver::Usuario
Obtenga la vista de usuario para esta base de datos.
-
#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.
Métodos incluidos en Retryable
#trabajador_de_lectura, #servidor_de_selección, #trabajador_de_escritura
Detalles del constructor
#inicializar(cliente, nombre, opciones = {}) ⇒ Base de datos
Crear una instancia de un nuevo objeto de base de datos.
362 363 364 365 366 367 368 369 370 |
# Archivo 'lib/mongo/database.rb', línea 362 def inicializar(Cliente, Nombre, = {}) propagar Error::InvalidDatabaseName.Nuevo a no ser que Nombre Si Lint.¿activado? && !(Nombre.is_a?(String) || Nombre.is_a?(Símbolo)) propagar "Elnombre de la base de datos debe ser una cadena o un símbolo: #{nombre}" end @cliente = Cliente @name = Nombre.a_s.freeze @opciones = .freeze end |
Detalles de los atributos de instancia
#cliente ⇒ Cliente (solo lectura)
Devuelve el cliente El cliente de la base de datos.
62 63 64 |
# Archivo 'lib/mongo/database.rb', línea 62 def Cliente @cliente end |
#nombre ⇒ Cadena (solo lectura)
Devuelve nombre El nombre de la base de datos.
65 66 67 |
# Archivo 'lib/mongo/database.rb', línea 65 def Nombre @name end |
#opciones ⇒ Hash (solo lectura)
Devuelve opciones Las opciones.
68 69 70 |
# Archivo 'lib/mongo/database.rb', línea 68 def @opciones end |
Detalles del método de clase
.crear(cliente) ⇒ Base de datos
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Crea una base de datos para el cliente proporcionado, para usarla cuando no queremos que la instancia de base de datos original del cliente sea la misma.
543 544 545 546 |
# Archivo 'lib/mongo/database.rb', línea 543 def yo.Cree(Cliente) database = Database.Nuevo(Cliente, Cliente.[:database], Cliente.) Cliente.conjunto_de_variables_de_instancia(:@database, database) end |
Detalles del método de instancia
#==(otro) ⇒ true, false
Comprueba la igualdad del objeto de la base de datos con otro. Simplemente verifica si los nombres son iguales.
94 95 96 97 |
# Archivo 'lib/mongo/database.rb', línea 94 def ==(otros) return false a no ser que otros.is_a?(Database) Nombre == otros.Nombre end |
#[](collection_name, options = {}) ⇒ Mongo::Collection También conocido como: colección
Obtenga una colección en esta base de datos con el nombre proporcionado.
110 111 112 113 114 115 |
# Archivo 'lib/mongo/database.rb', línea 110 def [](nombre_de_colección, = {}) Si [:server_api] propagar ArgumentError, La opción :server_api no se puede especificar para objetos de colección. Solo se puede especificar en el nivel de cliente. end Colección.Nuevo(yo, nombre_de_colección, ) end |
#agregado(tubería, opciones = {}) ⇒ Colección::Vista::Agregación
Realizar una agregación en la base de datos.
450 451 452 |
# Archivo 'lib/mongo/database.rb', línea 450 def Agregar(pipeline, = {}) vista.Nuevo(yo, ).Agregar(pipeline, ) end |
#cluster ⇒ Mongo::Server
Devuelve Obten el servidor primario del clúster.
80 81 |
# Archivo 'lib/mongo/database.rb', línea 80 delegadores def :grupo, :siguiente_primaria |
#nombres_de_colección(opciones = {}) ⇒ Array<String>
El conjunto de nombres de colecciones devueltos depende de la versión del servidor MongoDB que cumpla con la solicitud.
Obtenga todos los nombres de las colecciones que no son del sistema en la base de datos.
See https://mongodb.com/es/docs/manual/reference/command/listCollections/
for more information and usage.
142 143 144 |
# Archivo 'lib/mongo/database.rb', línea 142 def nombres_de_colección( = {}) vista.Nuevo(yo, ).nombres_de_colección() end |
#colecciones(opciones = {}) ⇒ Array
El conjunto de colecciones devueltas depende de la versión del servidor MongoDB que satisface la solicitud.
Obtenga todas las colecciones que no son del sistema que pertenecen a esta base de datos.
See https://mongodb.com/es/docs/manual/reference/command/listCollections/
for more information and usage.
203 204 205 |
# Archivo 'lib/mongo/database.rb', línea 203 def collections( = {}) nombres_de_colección().map { |Nombre| Colección(Nombre) } end |
#comando(operación, opts = {}) ⇒ Mongo::Operación::Resultado
Ejecutar un comando en la base de datos.
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 |
# Archivo 'lib/mongo/database.rb', línea 229 def Comando(operación, opta = {}) opta = opta.dup opciones_de_ejecución = opta.borrar(:opciones_de_ejecución) || {} txn_read_pref = Si opta[:sesión] && opta[:sesión].¿en_transacción? opta[:sesión].preferencia de lectura de txn else nulo end txn_read_pref ||= opta[:leer] || Selector de servidor::PRINCIPAL Lint.validar_preferencia_de_lectura_de_subrayado(txn_read_pref) selector = Selector de servidor.Obtener(txn_read_pref) Cliente.con_sesión(opta) hacer |sesión| Server = selector.seleccionar_servidor(clúster, nulo, sesión) op = Operación::Comando.Nuevo( :selector => operación, :nombre_de_la_base_de_datos => Nombre, :leer => selector, :sesión => sesión ) op.ejecutar(Server, context: Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, tiempos de espera de operación: tiempos de espera de operación(opta) ), opciones: opciones_de_ejecución) end end |
#drop(opciones = {}) ⇒ Resultado
Eliminar la base de datos y toda su información asociada.
322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 |
# Archivo 'lib/mongo/database.rb', línea 322 def descartar( = {}) operación = { :dropDatabase => 1 } Cliente.con_sesión() hacer |sesión| escribir_preocupación = Si [:escribir_preocupación] Escribir preocupación.Obtener([:escribir_preocupación]) else yo.escribir_preocupación end Operación::DropDatabase.Nuevo({ selector: operación, nombre_base_datos: Nombre, escribir_preocupación: escribir_preocupación, sesión: sesión }).ejecutar( siguiente_primaria(nulo, sesión), context: Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, tiempos de espera de operación: tiempos de espera de operación() ) ) end end |
#fs(options = {}) ⇒ Grid::FSBucket
Obtenga el “sistema de archivos” de Grid para esta base de datos.
404 405 406 |
# Archivo 'lib/mongo/database.rb', línea 404 def fs( = {}) Cuadrícula::Buque FS.Nuevo(yo, ) end |
#inspeccionar ⇒ Cadena
Obtener una inspección de string impresa bonita para la base de datos.
380 381 382 |
# Archivo 'lib/mongo/database.rb', línea 380 def inspeccionar "#<Mongo::Database:0x#{object_id} nombre=#{nombre}>" end |
#list_collections(opciones = {}) ⇒ Array<Hash>
El conjunto de colecciones devueltas y el esquema del hash de información por colección dependen de la versión del servidor MongoDB que cumple la solicitud.
Obtenga información sobre todas las colecciones que no son del sistema en la base de datos.
See https://mongodb.com/es/docs/manual/reference/command/listCollections/
for more information and usage.
175 176 177 |
# Archivo 'lib/mongo/database.rb', línea 175 def listas_colecciones( = {}) vista.Nuevo(yo, ).listas_colecciones() 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).
560 561 562 563 564 565 566 567 568 569 |
# Archivo 'lib/mongo/database.rb', línea 560 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 |
#read_command(operación, opts = {}) ⇒ 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.
Ejecutar un comando de lectura en la base de datos, reintentando la lectura si es necesario.
277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 |
# Archivo 'lib/mongo/database.rb', línea 277 def comando_de_lectura(operación, opta = {}) txn_read_pref = Si opta[:sesión] && opta[:sesión].¿en_transacción? opta[:sesión].preferencia de lectura de txn else nulo end txn_read_pref ||= opta[:leer] || Selector de servidor::PRINCIPAL Lint.validar_preferencia_de_lectura_de_subrayado(txn_read_pref) preferencia = Selector de servidor.Obtener(txn_read_pref) Cliente.con_sesión(opta) hacer |sesión| context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, tiempos de espera de operación: tiempos de espera de operación(opta) ) lectura_con_reintentar(sesión, preferencia, context) hacer |Server| Operación::Comando.Nuevo( selector: operación.dup, nombre_base_datos: Nombre, leer: preferencia, sesión: sesión, comment: opta[:comment], ).ejecutar(Server, context: context) end end 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.
552 553 554 |
# Archivo 'lib/mongo/database.rb', línea 552 def tiempo de espera_ms [:tiempo de espera_ms] || Cliente.tiempo de espera_ms end |
#usuarios ⇒ Ver::Usuario
Obtenga la vista de usuario para esta base de datos.
416 417 418 |
# Archivo 'lib/mongo/database.rb', línea 416 def Usuarios Auth::Usuario::vista.Nuevo(yo) 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". A partir de la versión 4.0, esta etapa permite a los usuarios solicitar el envío de notificaciones para todos los cambios que se produzcan en la base de datos del cliente.
519 520 521 522 523 524 525 526 527 528 |
# Archivo 'lib/mongo/database.rb', línea 519 def reloj(pipeline = [], = {}) = .dup [:tipo_de_cursor] = :tailable_await Si [:tiempo máximo de espera ms] Mongo::Colección::vista::ChangeStream.Nuevo( Mongo::Colección::vista.Nuevo(Colección("#{COMANDO }.aggregate"), {}, ), pipeline, Mongo::Colección::vista::ChangeStream::DATABASE, ) end |