Docs Menu
Docs Home
/ /
Corrutina de kotlin

Ejecute un comando

Puede ejecutar todas las operaciones de base de datos sin procesar utilizando el MongoDatabase.runCommand() Método. Una operación de base de datos sin procesar es un comando que se puede ejecutar directamente en la CLI del servidor MongoDB. Estos comandos incluyen tareas administrativas y de diagnóstico, como obtener las estadísticas del servidor o inicializar un conjunto de réplicas. Llame al método runCommand() con un objeto de comando Bson en una instancia de MongoDatabase para ejecutar la operación de base de datos sin procesar.

Tip

Utilice MongoDB Shell para tareas administrativas en lugar del controlador Kotlin siempre que sea posible, ya que estas tareas suelen ser más rápidas y fáciles de implementar con el shell que en una aplicación Kotlin.

El método runCommand() acepta un comando en forma de un objeto Bson. Por defecto, runCommand devuelve un objeto de tipo org.bson.Document que contiene la salida del comando de base de datos. Puedes especificar un tipo de retorno para runCommand() como un segundo parámetro opcional.

En el siguiente código de ejemplo, enviamos el comando dbStats para solicitar estadísticas de una base de datos específica de MongoDB.

Nota

Este ejemplo se conecta a una instancia de MongoDB mediante una URI de conexión. Para obtener más información sobre cómo conectarse a su instancia de MongoDB, consulte Guía de conexión.

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 obtener información adicional sobre las clases y métodos mencionados en esta página, consulte los siguientes recursos:

Volver

Indexes