Execute um comando
Você pode executar todas as operações do banco de dados bruto utilizando o método MongoDatabase.runCommand()
. Uma operação de banco de dados bruto é um comando que você pode executar diretamente na CLI do MongoDB Server. Esses comandos incluem tarefas administrativas e de diagnóstico, como buscar estatísticas do servidor ou inicializar um conjunto de réplicas. Chame o método runCommand()
com um objeto de comando Bson
em uma instância de um MongoDatabase
para executar sua operação de banco de dados bruto.
Dica
Use o MongoDB Shell para tarefas administrativas em vez do driver Java sempre que possível, já que essas tarefas geralmente são mais rápidas e fáceis de implementar com a shell do que em um aplicativo Java.
O método runCommand()
aceita um comando na forma de um objeto Bson
. Por padrão, o runCommand
retorna um objeto do tipo org.bson.Document
contendo a saída do comando do banco de dados. Você pode especificar um tipo de retorno para runCommand()
como um segundo parâmetro opcional.
Exemplo
No código de amostra a seguir, enviamos o comando dbStats
para solicitar estatísticas de um banco de dados MongoDB específico.
Observação
Esse exemplo se conecta a uma instância do MongoDB usando um URI de conexão. Para saber mais sobre como se conectar à sua instância do MongoDB , consulte oguia de conexão .
// Runs a database command by using the Java driver package usage.examples; import org.bson.BsonDocument; import org.bson.BsonInt64; import org.bson.Document; import com.mongodb.MongoException; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoDatabase; import org.bson.conversions.Bson; public class RunCommand { public static void main(String[] args) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); try { Bson command = new BsonDocument("dbStats", new BsonInt64(1)); // Retrieves statistics about the specified database Document commandResult = database.runCommand(command); // Prints the database statistics System.out.println("dbStats: " + commandResult.toJson()); } catch (MongoException me) { // Prints a message if any exceptions occur during the command execution System.err.println("An error occurred: " + me); } } } }
Ao executar o comando anterior, você verá uma saída semelhante a esta:
dbStats: {"db": "sample_mflix", "collections": 5, "views": 0, "objects": 75595, "avgObjSize": 692.1003770090614, "dataSize": 52319328, "storageSize": 29831168, "numExtents": 0, "indexes": 9, "indexSize": 14430208, "fileSize": 0, "nsSizeMB": 0, "ok": 1}
Dica
Legacy API
Se você estiver usando a API herdada, consulte nossa página de perguntas frequentes para saber quais alterações devem ser feitas nesse exemplo de código.
Para obter informações adicionais sobre as classes e métodos mencionados nesta página, consulte os seguintes recursos:
Documentação da API do runCommand()
Comandos de banco de dados Entrada manual do servidor
dbStats Entrada manual do servidor