Definición
db.runCommand(command, [options])Proporciona un asistente para ejecutar lo especificado comando de base de datos. Este es el método preferido para emitir comandos de base de datos, ya que proporciona una interfaz coherente entre la shell y los drivers.
ParameterTipoDescripcióncommandDocumento o string
Documento o string que especifica el comando. Si se especifica como una cadena,
db.runCommand()transforma la cadena en un documento.optionsDocumento
A partir de mongosh 2.0, las opciones que especifican cómo
mongoshejecuta el comando.options.readPreferencePreferencia de lectura para ejecutar el comando. Si no se especifica, el valor predeterminado
primaryes.db.runCommand()ignora cualquier otra configuración global de preferencia de lectura, incluyendo el uso de osetReadPref()la especificaciónreadPreferencede en una cadena de conexión.En Mongosh 1.x,
db.runCommand()no acepta el argumentooptions. Para establecer la preferencia de lectura, useMongo.setReadPref()o especifiquereadPreferenceen la cadena de conexión.Para especificar un límite de tiempo en milisegundos, consultar Terminar operaciones en curso.
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Nota
Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Comportamiento
db.runCommand() ejecuta el comando en el contexto de la base de datos actual. Algunos comandos solo son aplicables en el contexto de la admin base de datos, y debes cambiar tu objeto db antes de ejecutar estos comandos o utilizar db.adminCommand().
preferencia de lectura
A partir de mongosh,2.0 se puede especificar la preferencia de lectura de un comando con el argumento "opciones". Si no se especifica una preferencia de lectura, el valor predeterminado dedb.runCommand() primaryes.
Advertencia
En mongosh 2.0, db.runCommand() ignora cualquier otra configuración global de preferencia de lectura establecida, incluidos Mongo.setReadPref() o especificar readPreference en una cadena de conexión.
En mongosh 1.x, db.runCommand() no toma un argumento options. db.runCommand() utiliza la preferencia de lectura especificada al usar Mongo.setReadPref() o al especificar readPreference en la cadena de conexión.
Ejemplos
Los siguientes ejemplos muestran cómo utilizar db.runCommand() para ejecutar comandos de base de datos.
hello Comando sin preferencia de lectura especificada
Este ejemplo muestra cómo usar db.runCommand() para ejecutar el comando hello.
db.runCommand( { hello: 1 } )
Para obtener detalles sobre la salida, consulta Salida de Hello.
Para obtener detalles sobre el comportamiento de la preferencia de lectura, consulte Preferencia de lectura.
hola Comando con readPreference: secondaryPreferred
Este ejemplo muestra cómo utilizar db.runCommand() para ejecutar el comando hello con la preferencia de lectura secondaryPreferred.
db.runCommand( { hello: 1 }, { readPreference: "secondaryPreferred" } )
Para obtener detalles sobre la salida, consulta Salida de Hello.
Para obtener detalles sobre el comportamiento de la preferencia de lectura, consulte Preferencia de lectura.
Respuesta
El método devuelve un documento de respuesta que contiene los siguientes campos:
Campo | Descripción |
|---|---|
<command result> | Campos de resultados específicos para el/la |
| Un número que indica si el comando tuvo éxito ( |
| El tiempo lógico de la operación. MongoDB utiliza el tiempo lógico para ordenar las operaciones. Solo para sets de réplicas y clústeres. Si el comando no genera una entrada en el registro de operaciones (por ejemplo, una operación de lectura), la operación no avanza el reloj lógico. En este caso,
Para las operaciones asociadas con sesiones causalmente coherentes, los drivers de MongoDB utilizan el tiempo lógico para establecer automáticamente el período de Operaciones de lectura y |
| Un documento que devuelve el tiempo de clúster firmado. El tiempo de clúster es un tiempo lógico utilizado para el ordenamiento de las operaciones. Sólo para sets de réplicas y clústeres fragmentados. Sólo para uso interno. El documento contiene los siguientes campos:
|