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.
Ejemplo
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:
ejecutarComando() Documentación de la API
Entrada manualdel servidor de comandos de base de datos
Entrada manual del servidordbStats