Clase: Mongo::base de datos
- Hereda:
-
Objeto
- Objeto
- Mongo::base de datos
- Ampliado por:
- Reenviable
- Incluye:
- Reintentar
- Definido en:
- lib/mongo/database.rb,
lib/mongo/database/view.rb
Overview
Representa una base de datos en el servidor db y las operaciones que se pueden ejecutar en ella a este nivel.
Definido bajo Namespace
clase: vista
Resumen de constantes colapsar
- ADMIN =
El nombre de la base de datos admin.
'admin'- COMANDO =
La "colección" sobre la que operan los comandos de la base de datos.
'$cmd'- DEFAULT_OPTIONS =
Las opciones de base de datos por defecto.
opciones::Redactado.Nuevo(database: ADMIN).freeze
- NAME =
Obsoleto.
Constante de campo de nombre de base de datos.
'Nombre'- base de datos =
Constante de bases de datos.
'databases'- namespace =
El nombre de la colección que contiene todos los nombres de las colecciones.
'system.namespaces'
Resumen de atributos de la instancia colapsar
-
#client ⇒ Client
Solo lectura
Cliente El cliente de la base de datos.
-
#nombre ⇒ String
Solo lectura
Nombre El nombre de la base de datos.
-
#options ⇒ Hash
Solo lectura
Opciones Las opciones.
Resumen del método de clase colapsar
-
.create(client) ⇒ Base de datos
privado
Cree una base de datos para el cliente proporcionado, para utilizarla cuando no queremos que la instancia original de la base de datos del cliente sea la misma.
Resumen del método de instancia colapsar
-
#==(otro) ⇒ true, false
Verificar la igualdad del objeto de base de datos con otro.
-
#[](collection_name, options = {}) ⇒ Mongo::Collection (también: #colección)
Obtenga una colección en esta base de datos por el nombre proporcionado.
-
#aggregate(pipeline, options = {}) ⇒ colección::View::agregación
Realiza una agregación en la base de datos.
-
#cluster ⇒ Mongo::Server
Obtén el servidor principal del clúster.
-
#collection_names(options = {}) ⇒ arreglo<String>
Obtener todos los nombres de las colecciones no del sistema en la base de datos.
-
#collections(options = {}) ⇒ Array<Mongo::Collection>
Obtén todas las colecciones no del sistema que pertenecen a esta base de datos.
-
#command(operación, opts = {}) ⇒ Mongo::Operation::Result
Ejecutar un comando en la base de datos.
-
#descartar(opciones = {}) ⇒ Resultado
Descartar la base de datos y toda la información asociada a ella.
-
#fs(options = {}) ⇒ Grid::FSBucket
Obtén el "sistema de archivos" Grid para esta base de datos.
-
#initialize(cliente, nombre, opciones = {}) ⇒ Base de datos
constructor
Instancie un nuevo objeto de base de datos.
-
#inspect ⇒ string
Obtener una inspección de string impresa bonita para la base de datos.
-
#list_collections(options = {}) ⇒ Array<Hash>
Obtenga información sobre todas las colecciones que no son del sistema en la base de datos.
-
#operation_timeouts(opts) ⇒ 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).
-
#read_command(operación, opciones = { {}) ⇒ Hash
privado
Ejecute un comando de lectura en la base de datos, retrying la lectura si es necesario.
-
#timeout_ms ⇒ Integer | nil
privado
Tiempo de espera de la operación que es para esta base de datos o para el cliente correspondiente.
-
#usuarios ⇒ Ver::Usuario
Obtener la vista de usuario para esta base de datos.
-
#ver(pipeline = [], options = {}) ⇒ ChangeStream
Permite a los usuarios solicitar que se envíen notificaciones por todos los cambios que ocurran en la base de datos del cliente.
Métodos incluidos de Retryable
#read_worker, #select_server, #with_overload_retry, #write_worker
Detalles del Constructor
#initialize(client, name, options = {}) ⇒ Base de datos
Instancie un nuevo objeto de base de datos.
365 366 367 368 369 370 371 372 373 374 |
# Archivo 'lib/mongo/base de datos.rb', línea 365 def inicializar(Cliente, Nombre, = {}) propagar Error::InvalidDatabaseName.Nuevo a menos que Nombre si Lint.¿habilitado? && !(Nombre.is_a?(String) || Nombre.is_a?(Símbolo)) propagar "El nombre de la base de datos debe ser un string o un símbolo: #{name}" end @client = Cliente @name = Nombre.to_s.freeze @options = .freeze end |
Detalles de atributo de instancias
#cliente ⇒ Cliente (solo lectura)
Devuelve el cliente El cliente de la base de datos.
60 61 62 |
# Archivo 'lib/mongo/base de datos.rb', línea 60 def Cliente @client end |
#nombre ⇒ string (solo lectura)
Devuelve el nombre El nombre de la base de datos.
63 64 65 |
# Archivo 'lib/mongo/base de datos.rb', línea 63 def Nombre @name end |
#opciones ⇒ Hash (solo lectura)
Devuelve opciones Las opciones.
66 67 68 |
# Archivo 'lib/mongo/base de datos.rb', línea 66 def @options end |
Detalles del método de clase
.create(cliente) ⇒ Base de datos
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.
Cree una base de datos para el cliente proporcionado, para utilizarla cuando no queremos que la instancia original de la base de datos del cliente sea la misma.
546 547 548 549 |
# Archivo 'lib/mongo/base de datos.rb', línea 546 def sí mismo.Cree(Cliente) database = Database.Nuevo(Cliente, Cliente.[:database], Cliente.) Cliente.instance_variable_set(:@database, database) end |
Detalles del método de instancia
#==(otro) ⇒ true, false
Verifique la igualdad del objeto de base de datos con otro. Simplemente comprobará si los nombres son iguales.
93 94 95 96 97 |
# Archivo 'lib/mongo/base de datos.rb', línea 93 def ==(Otros) return false a menos que Otros.is_a?(Database) Nombre == Otros.Nombre end |
#[](collection_name, opciones = {}) ⇒ Mongo::Collection También se conoce como: colección
Obtenga una colección en esta base de datos por el nombre proporcionado.
110 111 112 113 114 115 116 117 |
# Archivo 'lib/mongo/base de datos.rb', línea 110 def [](nombre_colección, = {}) si [API del servidor] propagar ArgumentError, 'La opción :server_api no puede ser especificada para los objetos colección. Solo puede ser especificada a nivel de Cliente' end Colección.Nuevo(sí mismo, nombre_colección, ) end |
#aggregate(pipeline, options = {}) ⇒ Collection::View::Aggregation
Realiza una agregación en la base de datos.
454 455 456 |
# Archivo 'lib/mongo/base de datos.rb', línea 454 def Agregar(pipeline, = {}) vista.Nuevo(sí mismo, ).Agregar(pipeline, ) end |
#cluster ⇒ Mongo::Server
Devuelve Obten el servidor primario del clúster.
79 80 |
# Archivo 'lib/mongo/base de datos.rb', línea 79 def_delegators clúster, Siguiente |
#collection_names(opciones = {}) ⇒ arreglo<String>
El conjunto de nombres de colecciones devueltos depende de la versión del servidor MongoDB que cumpla con la solicitud.
Obtener todos los nombres de las colecciones no del sistema en la base de datos.
See https://mongodb.com/es/docs/manual/reference/command/listCollections/
for more information and usage.
144 145 146 |
# Archivo 'lib/mongo/base de datos.rb', línea 144 def collection_names( = {}) vista.Nuevo(sí mismo, ).collection_names() end |
#colecciones(opciones = {}) ⇒ Arreglo<Mongo::Colección>
El conjunto de colecciones devueltas depende de la versión del servidor MongoDB que satisface la solicitud.
Obtén todas las colecciones no del sistema que pertenecen a esta base de datos.
See https://mongodb.com/es/docs/manual/reference/command/listCollections/
for more information and usage.
205 206 207 |
# Archivo 'lib/mongo/base de datos.rb', línea 205 def collections( = {}) collection_names().map { |Nombre| Colección(Nombre) } end |
#command(operación, opts = {}) ⇒ Mongo::Operation::Result
Ejecutar un comando en la base de datos.
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 260 |
# Archivo 'lib/mongo/base de datos.rb', línea 231 def Comando(Operación, opciones = {}) opciones = opciones.dup execution_opts = opciones.borrar(execution_options) || {} txn_read_pref = (opciones[:: sesión].preferencia_de_lectura_txn si opciones[:: sesión] && opciones[:: sesión].en_transacción?) txn_read_pref ||= opciones[:leer] || ServerSelector::Primario Lint.validate_underscore_read_preference(txn_read_pref) selector = ServerSelector.Obtener(txn_read_pref) Cliente.con_sesión(opciones) hacer |sesión| context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: operation_timeouts(opciones) ) op = Operación::Comando.Nuevo( selector: Operación, db_name: Nombre, leer: selector, sesión: sesión ) retry_enabled = Cliente.[:retry_reads] != false && Cliente.[retry_writes] != false con_reintento_por_sobrecarga(context: context, retry_enabled: retry_enabled) hacer Server = selector.select_server(clúster, nulo, sesión) op.ejecutar(Server, context: context, opciones: execution_opts) end end end |
#descartar(opciones = {}) ⇒ Result
Descartar la base de datos y toda la información asociada a ella.
325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 |
# Archivo 'lib/mongo/base de datos.rb', línea 325 def descartar( = {}) Operación = { dropDatabase: 1 } Cliente.con_sesión() hacer |sesión| write_concern = si [conformidad_de_lectura] Nivel de confirmación de escritura (write concern).Obtener([conformidad_de_lectura]) else sí mismo.write_concern end Operación::DropDatabase.Nuevo({ selector: Operación, db_name: Nombre, write_concern: write_concern, sesión: sesión }).ejecutar( siguiente_principal(nulo, sesión), context: Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: operation_timeouts() ) ) end end |
#fs(options = {}) ⇒ Grid::FSBucket
Obtén el "sistema de archivos" Grid para esta base de datos.
408 409 410 |
# Archivo 'lib/mongo/base de datos.rb', línea 408 def fs( = {}) Cuadrícula::FSBucket.Nuevo(sí mismo, ) end |
#inspect ⇒ String
Obtener una inspección de string impresa bonita para la base de datos.
384 385 386 |
# Archivo 'lib/mongo/base de datos.rb', línea 384 def inspeccionar "#<Mongo::Database:0x#{object_id} name=#{name}>" end |
#list_collections(options = {}) ⇒ Arreglo<Hash>
El conjunto de colecciones devueltas y el esquema del hash de información por colección dependen de la versión del servidor de MongoDB que atienda 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.
177 178 179 |
# Archivo 'lib/mongo/base de datos.rb', línea 177 def list_collections( = {}) vista.Nuevo(sí mismo, ).list_collections() 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).
563 564 565 566 567 568 569 570 571 572 |
# Archivo 'lib/mongo/base de datos.rb', línea 563 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 |
#read_command(operación, 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.
Ejecute un comando de lectura en la base de datos, retrying la lectura si es necesario.
280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 |
# Archivo 'lib/mongo/base de datos.rb', línea 280 def read_command(Operación, opciones = {}) txn_read_pref = (opciones[:: sesión].preferencia_de_lectura_txn si opciones[:: sesión] && opciones[:: sesión].en_transacción?) txn_read_pref ||= opciones[:leer] || ServerSelector::Primario Lint.validate_underscore_read_preference(txn_read_pref) preferencia = ServerSelector.Obtener(txn_read_pref) Cliente.con_sesión(opciones) hacer |sesión| context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: operation_timeouts(opciones) ) Operación = Operación::Comando.Nuevo( selector: Operación.dup, db_name: Nombre, leer: preferencia, sesión: sesión, comment: opciones[:comment] ) op_name = opciones[:op_name] || 'Comando' trazador.trace_operation(Operación, context, op_name: op_name) hacer read_with_retry(sesión, preferencia, context) hacer |Server| Operación.ejecutar(Server, context: context) end end end 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.
555 556 557 |
# Archivo 'lib/mongo/base de datos.rb', línea 555 def timeout_ms [:timeout_ms] || Cliente.timeout_ms end |
#usuarios ⇒ Vista::Usuario
Obtener la vista de usuario para esta base de datos.
420 421 422 |
# Archivo 'lib/mongo/base de datos.rb', línea 420 def Usuarios Autenticación::Usuario::vista.Nuevo(sí mismo) 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 a los usuarios solicitar que se envíen notificaciones por todos los cambios que ocurran en la base de datos del cliente.
521 522 523 524 525 526 527 528 529 530 531 |
# Archivo 'lib/mongo/base de datos.rb', línea 521 def reloj(pipeline = [], = {}) = .dup [tipo_de_cursor] = tailable_await si [; tiempo_máximo_espera_ms] mongo::Colección::vista::ChangeStream.Nuevo( mongo::Colección::vista.Nuevo(Colección("#{COMMAND}.aggregate"), {}, ), pipeline, mongo::Colección::vista::ChangeStream::DATABASE, ) end |