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.
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. Recomendamos usar métodos de driver em vez de executar comandos de banco de dados quando possível.
Para executar tarefas administrativas, use o MongoDB Shell em vez do driver Java. Chamar o método db.runCommand()
dentro do shell é a maneira preferida de emitir comandos do banco de dados, pois ele fornece uma interface consistente entre o shell e os drivers.
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 dorunCommand()
Comandos de banco de dados Entrada manual do servidor
dbStats Entrada manual do servidor