Ejecuta un comando de base de datos en este servidor

# MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeCommand — Ejecuta un comando de base de datos en este servidor

### Descripción

final public function MongoDB\Driver\Server::executeCommand(string `$db`, MongoDB\Driver\Command `$command`, ?array `$options` = `null`): MongoDB\Driver\Cursor

Ejecuta un comando en este servidor.

Este método no aplica ninguna lógica especial al comando. Los valores por omisión para las opciones `"readPreference"`, `"readConcern"` y `"writeConcern"` serán deducidos de una transacción activa (indicada por la opción `"session"`). Si no hay una transacción activa, se utilizará una preferencia de lectura primaria para la selección del servidor.

Los valores por omisión no serán deducidos de la URI de conexión. Por lo tanto, se recomienda a los usuarios utilizar métodos de comando de lectura y/o escritura específicos si es posible.

> Nota: La opción `readPreference` no controla el servidor hacia el cual el controlador emite la operación; siempre se ejecutará en este objeto servidor. En su lugar, puede ser utilizado al emitir la operación a un secundario (desde una conexión de conjunto de réplicas, no autónoma) o el nodo Mongos para asegurarse de que el controlador defina el protocolo de fila en consecuencia o añada la preferencia de lectura a la operación, respectivamente.

### Parámetros

`db` (string)
  El nombre de la base de datos sobre la cual se ejecutará el comando.
`command` (MongoDB\Driver\Command)
  El comando a ejecutar.
`options`

  options
  Opción | Tipo | Descripción
  --- | --- | ---
  readConcern | MongoDB\Driver\ReadConcern | Una preocupación de lectura a aplicar a la operación. Esta opción está disponible en MongoDB 3.2+ y se traducirá en una excepción en el momento de la ejecución si se especifica para una versión más antigua del servidor.
  readPreference | MongoDB\Driver\ReadPreference | Una preferencia de lectura a utilizar para seleccionar un servidor para la operación.
  session | MongoDB\Driver\Session | Una sesión a asociar a la operación.
  writeConcern | MongoDB\Driver\WriteConcern | Una preocupación de escritura a aplicar a la operación.

  Advertencia

  Si se utiliza una `"session"` que tiene una transacción en curso, no se puede especificar la opción `"readConcern"` o `"writeConcern"`. Intentar hacer esto lanzará una excepción MongoDB\Driver\Exception\InvalidArgumentException. En su lugar, debe definir estas opciones cuando se crea la transacción con MongoDB\Driver\Session::startTransaction().

### Valores devueltos

Retorna un MongoDB\Driver\Cursor en caso de éxito.

### Errores/Excepciones

- Lanza una excepción MongoDB\Driver\Exception\InvalidArgumentException si la opción `"session"` se utiliza con una transacción asociada en combinación con una opción `"readConcern"` o `"writeConcern"`.
- Lanza una excepción MongoDB\Driver\Exception\InvalidArgumentException si la opción `"session"` se utiliza junto con una preocupación de escritura no reconocida.
- Lanza una excepción MongoDB\Driver\InvalidArgumentException en caso de error durante el análisis de un argumento.
- Lanza una excepción MongoDB\Driver\ConnectionException si la conexión al servidor falla por una razón distinta a un problema de identificación
- Lanza una excepción MongoDB\Driver\AuthenticationException si se requiere una identificación pero falla
- Lanza una excepción MongoDB\Driver\Exception\RuntimeException si ocurre un error (i.e. comando inválido, envío de un comando de escritura a un secundario).

### Historial de cambios

Versión | Descripción
--- | ---
PECL mongodb 2.0.0 | El parámetro `options` ya no acepta instancias de MongoDB\Driver\WriteConcern.
PECL mongodb 1.21.0 | Pasar un objeto MongoDB\Driver\ReadPreference como `options` está obsoleto y será eliminado en la versión 2.0.
PECL mongodb 1.4.4 | Se lanzará MongoDB\Driver\Exception\InvalidArgumentException si la opción `"session"` se utiliza conjuntamente con una preocupación de escritura no reconocida.
PECL mongodb 1.4.0 | El tercer parámetro es ahora un array de `options`. Para la compatibilidad ascendente, este parámetro siempre aceptará un objeto MongoDB\Driver\ReadPreference.

### Notas

> Nota: Es responsabilidad del llamante asegurarse de que el servidor sea capaz de ejecutar la operación de escritura. Por ejemplo, la ejecución de una operación de escritura en un secundario (excluyendo su base de datos "local") fallará.

### Ver también

- MongoDB\Driver\Command
- MongoDB\Driver\Cursor
- MongoDB\Driver\Server::executeReadCommand() - Ejecuta un comando de base de datos que lee en este servidor
- MongoDB\Driver\Server::executeReadWriteCommand() - Ejecuta un comando de base de datos que lee y escribe en este servidor
- MongoDB\Driver\Server::executeWriteCommand() - Ejecuta un comando de base de datos que escribe en este servidor
- MongoDB\Driver\Manager::executeCommand() - Ejecuta un comando de base de datos

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open