Classificação: Mongo::Banco de dados

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Repetitivo
Definido em:
build/ruby-driver-v2.19/lib/mongo/database.rb,
build/ruby-driver-v2.19/lib/mongo/database/view.rb

Visão geral

Representa um banco de dados de dados no servidor db e as operações que podem ser executadas nele nesse nível.

Desde:

  • 2.0.0

Definido sob namespace

Classes: Vista

Colapsode resumo constante

ADMIN =

O nome do banco de dados admin .

Desde:

  • 2.0.0

'admin'.congelar
COMMAND =

A "coleção" contra a qual os comandos do banco de dados de dados operam.

Desde:

  • 2.0.0

'$cmd'.congelar
DEFAULT_OPTIONS =

As opções de banco de dados de dados padrão.

Desde:

  • 2.0.0

Opções::Editado.Novo(:database => ADMIN).congelar
NOME =
Obsoleto.

Constante do campo de nome do banco de dados.

Desde:

  • 2.1.0

'nome'.congelar
BANCO DE DADOS =

Bancos de dados constantes.

Desde:

  • 2.1.0

'bancos dedados'.congelar
namespaces =

O nome da collection que contém todos os nomes de collections.

Desde:

  • 2.0.0

'system.namespaces'.congelar

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Métodos incluídos no Retryable

#read_worker, #select_server, #write_worker

Detalhes do construtor

#inicializar(cliente, nome, opções = {}) ➤ Banco de Dados

Instancie um novo objeto de banco de dados de dados .

Exemplos:

Instancie o banco de dados de dados .

Mongo::Database.new(client, :test)

Parâmetros:

  • Cliente (Mongo::Client)

    O cliente do driver.

  • name (string, símbolo)

    O nome do banco de dados.

  • opções (Hash) (padrão para: {})

    As opções.

Aumenta:

  • (Mongo::Database::InvalidName)

    Se o nome for nulo.

Desde:

  • 2.0.0



316
317
318
319
320
321
322
323
324
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 316

def inicializar(Cliente, name, opções = {})
  aumentar Erro::InvalidDatabaseName.Novo a menos que name
  se Lint.habilitado? && !(name.is_a?(String) || name.is_a?(Símbolo))
    aumentar "O nome do banco de dados deve ser uma string ou um símbolo: #{name}"
  end
  @cliente = Cliente
  @name = name.to_s.congelar
  @opções = opções.congelar
end

Detalhes do atributo da instância

#clienteCliente (somente leitura)

Retorna cliente O cliente do banco de dados de dados.

Retorna:

  • (Cliente)

    cliente O cliente do banco de dados.

Desde:

  • 2.0.0



62
63
64
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 62

def Cliente
  @cliente
end

#namestring (somente leitura)

Retorna name O nome do banco de banco de dados.

Retorna:

  • (string)

    name O nome do banco de banco de dados.

Desde:

  • 2.0.0



65
66
67
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 65

def name
  @name
end

#opçõesHash (somente leitura)

Retorna as opções As opções.

Retorna:

  • (Hash)

    opções As opções.

Desde:

  • 2.0.0



68
69
70
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 68

def opções
  @opções
end

Detalhes do método de classe

.create(cliente) ➤ Banco de dados

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Criar um banco de dados de dados para o cliente fornecido, para uso quando não quisermos que a instância do banco de dados de dados original do cliente seja a mesma.

Exemplos:

Crie um banco de dados de dados para o cliente.

Database.create(client)

Parâmetros:

  • Cliente (Cliente)

    O cliente para criar.

Retorna:

Desde:

  • 2.0.0



496
497
498
499
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 496

def auto.criar(Cliente)
  database = Database.Novo(Cliente, Cliente.opções[:database], Cliente.opções)
  Cliente.instance_variable_set(:@database, database)
end

Detalhes do método de instância

#==(outro) ➤ true, false

Verifique a igualdade do objeto de banco de dados de dados em relação a outro. Simplesmente verificará se os nomes são os mesmos.

Exemplos:

Verifique a igualdade do banco de dados de dados.

database == other

Parâmetros:

  • Outro (Objeto)

    O objeto em relação ao qual verificar.

Retorna:

  • (verdadeiro, falso)

    Se os objetos forem iguais.

Desde:

  • 2.0.0



94
95
96
97
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 94

def ==(Outro)
  Método false a menos que Outro.is_a?(Database)
  name == Outro.name
end

#[](collection_name, options = {}) ➤ Mongo::Collection Também conhecido como: collection

Obtenha uma coleção neste banco de dados de dados pelo nome fornecido.

Exemplos:

Obtenha uma coleção.

database[:users]

Parâmetros:

  • collection_name (string, símbolo)

    O nome da collection.

  • opções (Hash) (padrão para: {})

    As opções da collection.

Retorna:

Desde:

  • 2.0.0



110
111
112
113
114
115
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 110

def [](collection_name, opções = {})
  se opções[:server_api]
    aumentar ArgumentError, 'A opção :server_api não pode ser especificada para objetos de coleção. Só pode ser especificado no nível do cliente'
  end
  collection.Novo(auto, collection_name, opções)
end

#aggregation(pipeline, options = {}) ➤ Collection::View::aggregation

Execute uma agregação no banco de banco de dados.

Exemplos:

Execute uma agregação.

collection.aggregate([ { "$listLocalSessions" => {} } ])

Parâmetros:

  • gasoduto (Array<Hash>)

    O pipeline de agregação .

  • opções (Hash) (padrão para: {})

    As opções de aggregation.

Hash de opções (opções):

  • :allow_disk_use (verdadeiro, falso)

    Defina como verdadeiro se o uso do disco for permitido durante a agregação.

  • :batch_size (Inteiro)

    O número de documentos a serem devolvidos por lote.

  • :bypass_document_validation (verdadeiro, falso)

    Se deve ou não ignorar a validação em nível de documento .

  • :collation (Hash)

    O agrupamento a ser usado.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :hint (string)

    O índice a ser usado para a agregação.

  • :max_time_ms (Inteiro)

    A quantidade máxima de tempo em milissegundos para permitir a execução da agregação .

  • :use_cursor (verdadeiro, falso)

    Indica se o comando solicitará que o servidor forneça resultados usando um cursor. Observe que, a partir da versão do servidor 3.6, as aggregations sempre fornecem resultados usando um cursor e, portanto, essa opção não é válida.

  • :session (Sessão)

    A sessão a ser usada.

Retorna:

Desde:

  • 2.10.0



403
404
405
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 403

def Agregação(gasoduto, opções = {})
  Vista.Novo(auto).Agregação(gasoduto, opções)
end

#clusterMongo::Server

Retorna Obter o servidor primário do cluster.

Retorna:

Desde:

  • 2.0.0



80
81
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 80

def_delegators :cluster,
:next_primary

#collection_names(opções = {}) ➤ Array<String>

Observação:

O conjunto de nomes de collection retornados depende da versão do servidor MongoDB que atende à solicitação.

Obtenha todos os nomes das coleções que não são do sistema no banco de banco de dados.

Parâmetros:

  • opções (Hash) (padrão para: {})

Hash de opções (opções):

  • :filter (Hash)

    Um filtro para as collections retornadas.

  • : authorized_collections (verdadeiro, falso)

    Um sinalizador, quando definido como true e usado com nameOnly: true, que permite a um usuário sem o privilégio necessário executar o comando quando o controle de acesso é imposto

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

    Consulte mongodb.com/pt-br/docs/manual/reference/command/listCollections/ para obter mais informações e uso.

Retorna:

  • (Array<String>)

    Nomes das collections.

Desde:

  • 2.0.0



138
139
140
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 138

def collection_names(opções = {})
  Vista.Novo(auto).collection_names(opções)
end

#collections(options = {}) ➤ Array

Observação:

O conjunto de collections retornadas depende da versão do servidor MongoDB que atende à solicitação.

Obtenha todas as collections que não são do sistema que pertencem a este banco de dados de dados.

Parâmetros:

  • opções (Hash) (padrão para: {})

Hash de opções (opções):

  • :filter (Hash)

    Um filtro para as collections retornadas.

  • : authorized_collections (verdadeiro, falso)

    Um sinalizador, quando definido como true e usado com name_only: true, que permite a um usuário sem o privilégio necessário executar o comando quando o controle de acesso é imposto.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

    Consulte mongodb.com/pt-br/docs/manual/reference/command/listCollections/ para obter mais informações e uso.

Retorna:

Desde:

  • 2.0.0



191
192
193
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 191

def collections(opções = {})
  collection_names(opções).map { |name| collection(name) }
end

#command(operation, opts = {}) ➤ Mongo::Operation::Result

Executar um comando no banco de dados.

Exemplos:

Execute um comando.

database.command(:hello => 1)

Parâmetros:

  • operação (Hash)

    O comando a ser executado.

  • opciona (Hash) (padrão para: {})

    As opções de comando.

Hash de opções (opts):

  • :read (Hash)

    A preferência de leitura para este comando.

  • :session (Sessão)

    A sessão a ser usada para esse comando.

  • :execution_options (Hash)

    Opções a serem passadas para o código que executa esse comando. Esta é uma opção interna e está sujeita a alterações.

    • :deserialize_as_bson [ Boolean ] Se deve desserializar a resposta a este comando usando BSON types em vez de tipos Ruby nativos sempre que possível.

Retorna:

Desde:

  • 2.0.0



213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 213

def comando(operação, opciona = {})
  opciona = opciona.dup
  execution_opts = opciona.excluir(:execution_options) || {}

  txn_read_pref = se opciona[:session] && opciona[:session].in_transaction?
    opciona[:session].txn_read_preference
  mais
    nada
  end
  txn_read_pref ||= opciona[:read] || ServerSelector::Principal
  Lint.validate_subscore_read_preference(txn_read_pref)
  seletor = ServerSelector.obter(txn_read_pref)

  Cliente.enviar(:with_session, opciona) fazer |session|
    Servidor = seletor.select_server(cluster, nada, session)
    op = (operação)::Comando.Novo(
      :selector => operação,
      :db_name => name,
      :read => seletor,
      :session => session
    )

    op.executar, executar(Servidor,
      contexto: (operação)::Contexto.Novo(cliente: Cliente, sessão: session),
      opções: execution_opts)
  end
end

#descartar(opções = {}) ➤ Resultado

Solte o banco de dados de dados e todas as suas informações associadas.

Exemplos:

Solte o banco de dados.

database.drop

Parâmetros:

  • opções (Hash) (padrão para: {})

    As opções para a operação.

  • opciona (Hash)

    um conjunto personalizável de opções

Hash de opções (opções):

  • :session (Sessão)

    A sessão a ser usada para a operação.

Retorna:

  • (Resultado)

    O resultado do comando.

Desde:

  • 2.0.0



287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 287

def derrubar(opções = {})
  operação = { :dropDatabase => 1 }
  Cliente.enviar(:with_session, opções) fazer |session|
    write_concern = se opções[:write_concern]
      Escreva preocupação.obter(opções[:write_concern])
    mais
      auto.write_concern
    end
    (operação)::Descartar banco de dados.Novo({
      seletor: operação,
      db_name: name,
      write_concern: write_concern,
      sessão: session
    }).executar, executar(próximo_primary(nada, session), contexto: (operação)::Contexto.Novo(cliente: Cliente, sessão: session))
  end
end

#fs(options = {}) ⇒ Grid::FSBucket

Obtenha o “sistema de arquivos” do Grid para este banco de dados.

Parâmetros:

  • opções (Hash) (padrão para: {})

    As opções do GridFS .

Hash de opções (opções):

  • :bucket_name (string)

    O prefixo para os arquivos e coleções de blocos.

  • :chunk_size (Inteiro)

    Substitua o tamanho padrão do chunk.

  • :fs_name (string)

    O prefixo para os arquivos e coleções de blocos.

  • :read (string)

    A preferência de leitura.

  • :session (Sessão)

    A sessão a ser usada.

  • :write (Hash)

    Obsoleto. Equivalente à opção :write_concern.

  • :write_concern (Hash)

    As opções de preocupação de gravação . Pode ser :w => Inteiro|String, : fsync => Booleano, :j => Booleano.

Retorna:

Desde:

  • 2.0.0



358
359
360
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 358

def fs(opções = {})
  Grade::FSBucket.Novo(auto, opções)
end

#inspecionarstring

Obtenha uma inspeção de string bem impressa para o banco de dados.

Exemplos:

Inspecione o banco de dados de dados .

database.inspect

Retorna:

  • (string)

    A inspeção do banco de dados de dados.

Desde:

  • 2.0.0



334
335
336
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 334

def inspecionar
  "#<Mongo::Database:0x#{object_id} name=#{name}>"
end

#list_collections(options = {}) ➤ Array<Hash>

Observação:

O conjunto de coleções retornadas e o esquema do hash de informações por coleção depende da versão do servidor MongoDB que atende à solicitação.

Obtenha informações sobre todas as collections que não são do sistema no banco de dados.

Parâmetros:

  • opções (Hash) (padrão para: {})

Hash de opções (opções):

  • :filter (Hash)

    Um filtro para as collections retornadas.

  • :name_only (verdadeiro, falso)

    Indica se o comando deve retornar apenas os nomes e o tipo da collection/visualização ou se deve retornar o nome e outras informações

  • : authorized_collections (verdadeiro, falso)

    Um sinalizador, quando definido como true e usado com nameOnly: true, que permite a um usuário sem o privilégio necessário executar o comando quando o controle de acesso é imposto.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

    Consulte mongodb.com/pt-br/docs/manual/reference/command/listCollections/ para obter mais informações e uso.

Retorna:

  • (Array<Hash>)

    Array de hashes de informações, um para cada collection no banco de banco de dados.

Desde:

  • 2.0.5



167
168
169
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 167

def list_collections(opções = {})
  Vista.Novo(auto).list_collections(opções)
end

#read_command(operation, opts = {}) ➤ Hash

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Execute um comando de leitura no banco de banco de dados, tentando novamente a leitura, se necessário.

Parâmetros:

  • operação (Hash)

    O comando a ser executado.

  • opciona (Hash) (padrão para: {})

    As opções de comando.

Hash de opções (opts):

  • :read (Hash)

    A preferência de leitura para este comando.

  • :session (Sessão)

    A sessão a ser usada para esse comando.

Retorna:

  • (Hash)

    O resultado da execução do comando.

Desde:

  • 2.0.0



251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 251

def read_command(operação, opciona = {})
  txn_read_pref = se opciona[:session] && opciona[:session].in_transaction?
    opciona[:session].txn_read_preference
  mais
    nada
  end
  txn_read_pref ||= opciona[:read] || ServerSelector::Principal
  Lint.validate_subscore_read_preference(txn_read_pref)
  preferência = ServerSelector.obter(txn_read_pref)

  Cliente.enviar(:with_session, opciona) fazer |session|
    read_with_retry(session, preferência) fazer |Servidor|
      (operação)::Comando.Novo(
        seletor: operação.dup,
        db_name: name,
        ler: preferência,
        sessão: session,
        comment: opciona[:comentário],
      ).executar, executar(Servidor, contexto: (operação)::Contexto.Novo(cliente: Cliente, sessão: session))
    end
  end
end

#usuáriosVisualizar::Usuário

Obtenha a visualização do usuário para este banco de dados de dados .

Exemplos:

Obtenha a visualização do usuário.

database.users

Retorna:

  • (Visualizar::Usuário)

    A visão do usuário.

Desde:

  • 2.0.0



370
371
372
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 370

def Usuários
  auth::Usuário::Vista.Novo(auto)
end

#watch(pipeline = [], options = {}) ➤ ChangeStream

Observação:

Um change stream permite apenas a preocupação de leitura de "maioria".

Observação:

Este método auxiliar é preferível a executar uma agregação bruta com um estágio $changeStream, com a finalidade de apoiar a capacidade de retomada.

A partir da versão 3.6 do servidor MongoDB , um estágio de pipeline "$changeStream" é suportado no framework de agregação . A partir da versão 4.0, esse estágio permite que os usuários solicitem o envio de notificações para todas as alterações que ocorrerem no banco de banco de dados do cliente.

Exemplos:

Obtenha notificações de alteração para um determinado banco de dados de dados.

database.watch([{ '$match' => { operationType: { '$in' => ['insert', 'replace'] } } }])

Parâmetros:

  • gasoduto (Array<Hash>) (padrão para: [])

    Operadores de filtro adicionais opcionais.

  • opções (Hash) (padrão para: {})

    As opções de change stream.

Hash de opções (opções):

  • :full_document (string)

    Valores permitidos: nil, 'default', 'updateLookup', 'whenAvailable', 'required'.

    O padrão é não enviar um valor (ou seja, nil), que é equivalente a "padrão". Por padrão, a notificação de alteração para atualizações parciais incluirá um delta descrevendo as alterações no documento.

    Quando definido como 'updateLookup', a notificação de alteração para atualizações parciais incluirá um delta descrevendo as alterações no documento, bem como uma cópia de todo o documento que foi alterado algum tempo após a ocorrência da alteração.

    Quando definido como 'whenAvailable', configura o fluxo de alterações para retornar a pós-imagem do documento modificado para eventos de alteração de substituição e atualização se a pós-imagem desse evento estiver disponível.

    Quando definido como "obrigatório", tem o mesmo comportamento de "whenAvailable", exceto pelo fato de que um erro é gerado se a pós-imagem não estiver disponível.

  • :full_document_before_change (string)

    Valores permitidos: nil, 'whenAvailable', 'required', 'off'.

    O padrão é não enviar um valor (ou seja, nil), que é equivalente a "off".

    Quando definido como "whenAvailable", configura o change stream para retornar a pré-imagem do documento modificado para substituir, atualizar e excluir eventos de alteração, se estiver disponível.

    Quando definido como "obrigatório", tem o mesmo comportamento de "whenAvailable", exceto pelo fato de que um erro é gerado se a pré-imagem não estiver disponível.

  • :resume_after (BSON::Document, Hash)

    Especifica o ponto de partida lógico para o novo fluxo de alteração.

  • :max_await_time_ms (Inteiro)

    O tempo máximo para o servidor aguardar novos documentos para atender a uma query de fluxo de alterações.

  • :batch_size (Inteiro)

    O número de documentos a serem devolvidos por lote.

  • :collation (BSON::Document, Hash)

    O agrupamento a ser usado.

  • :session (Sessão)

    A sessão a ser usada.

  • :start_at_operation_time (BSON::Timestamp)

    Retornar apenas as alterações que ocorreram após o registro de data/hora especificado. Qualquer comando executado no servidor retornará um tempo de cluster que pode ser usado aqui. Reconhecido apenas pelas versões do servidor 4.0+.

  • :comentário (Objeto)

    Um comentário fornecido pelo usuário para anexar a este comando.

  • :show_expanded_events (Booleano)

    Permite que o servidor envie a lista "expandida" de eventos de fluxo de alterações. A lista de eventos adicionais incluídos com este conjunto de sinalizadores é: createIndexes, dropIndexes, modify, create, shardCollection, reshardCollection, refineCollectionShardKey.

Retorna:

  • (ChangeStream)

    O objeto de fluxo de alterações.

Desde:

  • 2.6.0



472
473
474
475
476
477
478
479
480
481
# File 'build/ruby-driver-v2.19/lib/mongo/database.rb', linha 472

def assistir(gasoduto = [], opções = {})
  view_options = opções.dup
  view_options[:await_data] = true se opções[:max_await_time_ms]

  mongo::collection::Vista::Change stream.Novo(
    mongo::collection::Vista.Novo(collection("#{COMMAND}.aggregate"), {}, view_options),
    gasoduto,
    mongo::collection::Vista::Change stream::Banco de dados,
    opções)
end