Clase: Mongo::Database
- 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 de base de datos y las operaciones que se pueden ejecutar en ella en este nivel.
Definido bajo Namespace
Clases: vista
Colapso delresumen constante
- ADMINISTRADOR =
El nombre de la base de datos admin.
'admin'.freeze
- COMANDO =
La “colección” contra la que operan los comandos de base de datos.
'$cmd'.freeze
- 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'.freeze
- BASES DE DATOS =
Constante de bases de datos.
'databases'.freeze
- namespace =
El nombre de la colección que contiene todos los nombres de colecciones.
'system.namespaces'.freeze
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
-
.crear(cliente) ⇒ Base de datos
privado
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.
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 con el nombre proporcionado.
-
#aggregate(pipeline, options = {}) ⇒ colección::View::agregación
Realiza una agregación en la base de datos.
-
#cluster ⇒ Mongo::Server
Obtenga el servidor principal del clúster.
-
#collection_names(options = {}) ⇒ arreglo<String>
Obtenga todos los nombres de las colecciones que no son 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.
-
#drop(opciones = {}) ⇒ Resultado
Descartar la base de datos y toda la información asociada a ella.
-
#fs(options = {}) ⇒ Grid::FSBucket
Obtenga el "sistema de archivos" Grid para esta base de datos.
-
#initialize(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(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
A partir de la versión 3.6 del servidor MongoDB, se admite una etapa de pipeline "$changeStream" en el framework de agregación.
Métodos incluidos en Retryable
#read_worker, #select_server, #write_worker
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/base de datos.rb', línea 362 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 @cliente = Cliente @name = Nombre.to_s.freeze @options = .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/base de datos.rb', línea 62 def Cliente @cliente end |
#nombre ⇒ string (solo lectura)
Devuelve el nombre El nombre de la base de datos.
65 66 67 |
# Archivo 'lib/mongo/base de datos.rb', línea 65 def Nombre @name end |
#opciones ⇒ Hash (solo lectura)
Devuelve opciones Las opciones.
68 69 70 |
# Archivo 'lib/mongo/base de datos.rb', línea 68 def @options end |
Detalles del método de clase
.create(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/base de datos.rb', línea 543 def sí mismo.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
Verifique la igualdad del objeto de base de datos con otro. Simplemente comprobará si los nombres son iguales.
94 95 96 97 |
# Archivo 'lib/mongo/base de datos.rb', línea 94 def ==(Otros) return false a menos 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/base de datos.rb', línea 110 def [](nombre_colección, = {}) si [API del servidor] 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(sí mismo, nombre_colección, ) end |
#aggregate(pipeline, options = {}) ⇒ Collection::View::Aggregation
Realiza una agregación en la base de datos.
450 451 452 |
# Archivo 'lib/mongo/base de datos.rb', línea 450 def Agregar(pipeline, = {}) vista.Nuevo(sí mismo, ).Agregar(pipeline, ) end |
#cluster ⇒ Mongo::Server
Devuelve Obten el servidor primario del clúster.
80 81 |
# Archivo 'lib/mongo/base de datos.rb', línea 80 def_delegators :grupo, 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.
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/base de datos.rb', línea 142 def nombres_de_colección( = {}) vista.Nuevo(sí mismo, ).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.
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.
203 204 205 |
# Archivo 'lib/mongo/base de datos.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/base de datos.rb', línea 229 def Comando(operación, opta = {}) opta = opta.dup opciones_de_ejecución = opta.borrar(execution_options) || {} txn_read_pref = si opta[:: sesión] && opta[:: sesión].en_transacción? opta[:: sesión].preferencia_de_lectura_txn else nulo end txn_read_pref ||= opta[:leer] || ServerSelector::Primario Lint.validar_preferencia_de_lectura_de_subrayado(txn_read_pref) selector = ServerSelector.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, operation_timeouts: tiempos de espera de operación(opta) ), opciones: opciones_de_ejecución) end end |
#descartar(opciones = {}) ⇒ Result
Descartar la base de datos y toda la información asociada a ella.
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/base de datos.rb', línea 322 def descartar( = {}) operación = { :dropDatabase => 1 } Cliente.con_sesión() hacer |sesión| escribir_preocupación = si [:escribir_preocupación] Nivel de confirmación de escritura (write concern).Obtener([:escribir_preocupación]) else sí mismo.escribir_preocupación end Operación::DropDatabase.Nuevo({ selector: operación, nombre_base_datos: Nombre, write_concern: escribir_preocupación, sesión: sesión }).ejecutar( siguiente_principal(nulo, sesión), context: Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: tiempos de espera de operación() ) ) end end |
#fs(options = {}) ⇒ Grid::FSBucket
Obtenga el "sistema de archivos" Grid para esta base de datos.
404 405 406 |
# Archivo 'lib/mongo/base de datos.rb', línea 404 def fs( = {}) Cuadrícula::Buque FS.Nuevo(sí mismo, ) end |
#inspect ⇒ String
Obtener una inspección de string impresa bonita para la base de datos.
380 381 382 |
# Archivo 'lib/mongo/base de datos.rb', línea 380 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.
175 176 177 |
# Archivo 'lib/mongo/base de datos.rb', línea 175 def list_collections( = {}) vista.Nuevo(sí mismo, ).list_collections() end |
#operation_timeouts(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.
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).
560 561 562 563 564 565 566 567 568 569 |
# Archivo 'lib/mongo/base de datos.rb', línea 560 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 |
#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.
Ejecute un comando de lectura en la base de datos, retrying 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/base de datos.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_txn else nulo end txn_read_pref ||= opta[:leer] || ServerSelector::Primario Lint.validar_preferencia_de_lectura_de_subrayado(txn_read_pref) preferencia = ServerSelector.Obtener(txn_read_pref) Cliente.con_sesión(opta) hacer |sesión| context = Operación::Context.Nuevo( cliente: Cliente, sesión: sesión, operation_timeouts: tiempos de espera de operación(opta) ) read_with_retry(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/base de datos.rb', línea 552 def timeout_ms [:timeout_ms] || Cliente.timeout_ms end |
#usuarios ⇒ Ver::Usuario
Obtener la vista de usuario para esta base de datos.
416 417 418 |
# Archivo 'lib/mongo/base de datos.rb', línea 416 def Usuarios Autenticación::Usuario::vista.Nuevo(sí mismo) 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 framework de agregación. A partir de la versión 4.0, esta etapa permite a los usuarios solicitar que se envíen notificaciones para todos los cambios que ocurran en la base de datos del cliente.
519 520 521 522 523 524 525 526 527 528 |
# Archivo 'lib/mongo/base de datos.rb', línea 519 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("#{COMANDO }.aggregate"), {}, ), pipeline, Mongo::Colección::vista::ChangeStream::DATABASE, ) end |