Visão geral
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.
Dados de amostra
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 .
Executar um comando
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 .
Definir uma preferência de leitura
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 .
Resposta
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 |
---|---|
| Retorna |
| Retorna uma representação de string formatada da resposta do comando. |
| Retorna |
| 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. |
| 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.
Dica
Para saber mais sobre o tempo lógico, consulte o verbete da Wikipedia sobre o relógio lógico.
Exemplo
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}
Informações adicionais
Para obter mais informações sobre os conceitos deste guia, consulte a seguinte documentação no manual do MongoDB Server :
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API: