Menu Docs
Página inicial do Docs
/ / /
Ruby Driver
/

Executar um comando de banco de dados

Neste guia, você pode aprender como usar o driver Ruby para executar um comando de banco de dados. Você pode usar comandos de banco de dados para executar uma variedade de tarefas administrativas e de diagnóstico, como buscar estatísticas do servidor , inicializar um conjunto de réplicas ou executar um pipeline de agregação .

Importante

Preferir métodos de driver em vez de reconhecimento de data center

O driver fornece métodos wrapper para muitos comandos de banco de dados . Se possível, recomendamos usar esses métodos em vez de executar comandos de banco de dados .

Para executar tarefas administrativas, use o shell do MongoDB em vez do driver Ruby. O shell fornece métodos assistente que podem não estar disponíveis no driver.

Se não houver auxiliares disponíveis no driver ou no shell, você poderá usar o método de shell db.runCommand() ou o método command do driver, descrito neste guia.

Os exemplos neste guia usam o banco de dados sample_restaurants dos conjuntos de dados de amostra do Atlas. Para acessar esse banco de dados a partir do aplicação Ruby, crie um objeto Mongo::Client que se conecte a um Atlas cluster e atribua o seguinte valor à variável database:

database = client.use('sample_restaurants')

Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .

Para executar um comando de banco de dados, execute o método de instância command de uma instância Mongo::Database e passe o nome da operação a ser executada como um parâmetro.

O exemplo seguinte chama o método command para executar o comando hello, que retorna informações sobre o servidor:

client.database.command(hello: 1)

Dica

Para ver uma lista completa de comandos de banco de dados e seus parâmetros correspondentes, veja Comandos de banco de dados no manual do MongoDB Server .

O método command não herda a preferência de leitura que você pode ter definido na sua instância do Database. Por padrão, o command utiliza a preferência de leitura primary .

Você pode definir uma preferência de leitura para a execução do comando passando a opção :read para o método command, conforme mostrado no código a seguir:

client.database.command({hello: 1}, read: {mode: :secondary})

Dica

Para saber mais sobre as opções de preferência de leitura , consulte Read preference no manual do MongoDB Server .

O método command retorna um Mongo::Operation::Result que contém a resposta do banco de dados para o comando fornecido.

Você pode acessar os campos do documento bruto de resposta do comando usando os seguintes métodos:

Método
Descrição

acknowledged?

Retorna true se o servidor reconheceu o comando e false caso contrário.

inspect

Retorna uma representação de string formatada da resposta do comando.

ok?

Retorna true se o comando for bem-sucedido e false caso contrário. Se o método ok? retornar false, o driver gerará um Mongo::Error::OperationFailure .

cluster_time

Retorna o tempo de agrupamento relatado na resposta do servidor . O tempo do cluster é um tempo lógico usado para ordenar operações. Este campo se aplica somente a comandos executados em conjuntos de réplicas ou cluster fragmentado.

operation_time

Retorna o tempo lógico da execução da operação.

Para obter uma lista completa dos métodos disponíveis no objeto Result, consulte a documentação da API.

O exemplo a seguir executa o comando dbStats para recuperar estatísticas de armazenamento para o banco de dados sample_restaurants e, em seguida, imprime os resultados do comando usando o método inspect:

puts client.database.command({dbStats: 1}).first

A saída desse comando inclui informações sobre os dados armazenados no banco de dados, conforme mostrado no código a seguir:

{"db"=>"sample_restaurants", "collections"=>4, "views"=>0, "objects"=>18767, "avgObjSize"=>596.1911866574306,
"dataSize"=>11188720, "storageSize"=>7528448, "totalFreeStorageSize"=>0, "numExtents"=>0, "indexes"=>6,
"indexSize"=>1519616, "indexFreeStorageSize"=>0, "fileSize"=>0, "nsSizeMB"=>0, "ok"=>1}

Para obter mais informações sobre os conceitos deste guia, consulte a seguinte documentação no manual do MongoDB Server :

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

reconhecimento de data center e collection

Nesta página