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 oMongoDB Shell para tarefas administrativas em vez do driver Kotlin 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 Kotlin.
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 .
import com.mongodb.MongoException import com.mongodb.kotlin.client.coroutine.MongoClient import kotlinx.coroutines.runBlocking import org.bson.BsonDocument import org.bson.BsonInt64 import org.bson.json.JsonWriterSettings fun main() = runBlocking { // Replace the uri string with your MongoDB deployment's connection string val uri = "<connection string uri>" val mongoClient = MongoClient.create(uri) val database = mongoClient.getDatabase("sample_mflix") try { val command = BsonDocument("dbStats", BsonInt64(1)) val commandResult = database.runCommand(command) println(commandResult.toJson(JsonWriterSettings.builder().indent(true).build())) } catch (me: MongoException) { System.err.println("An error occurred: $me") } mongoClient.close() }
{ "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 }
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