Overview
En esta guía, puede aprender a ejecutar 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 de MongoDB Server. 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.
Importante
Prefiera los métodos del controlador a los comandos de base de datos
El controlador proporciona métodos de encapsulamiento para numerosos comandos de base de datos. Recomendamos usar métodos de controlador en lugar de ejecutar comandos de base de datos siempre que sea posible.
Para realizar tareas administrativas, utilice el MongoDB Shell en lugar del controlador Java. Llamar al db.runCommand() método dentro del shell es la forma preferida de ejecutar comandos de base de datos, ya que proporciona una interfaz consistente entre el shell y los controladores.
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 de comando de ejecución: archivo completo
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.
// Runs a database command by using the Java driver package org.example; 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); } } } }
Cuando ejecute el comando anterior, debería ver un resultado similar al siguiente:
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}
Tip
Legacy API
Si usas la API heredada, consulta la sección de preguntas frecuentes de la guía de la API heredada para conocer los cambios que debes realizar en este ejemplo de código.
Información Adicional
Documentación de la API
Para obtener más información sobre el método utilizado para ejecutar comandos de base de datos, consulte la siguiente documentación de API: