# MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeCommand — Execute a database command on this server

### Descripción

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

Executes the command on this server.

This method applies no special logic to the command. Although this method accepts `"readConcern"` and `"writeConcern"` options, which will be incorporated into the command document, those options will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB server version be taken into account. Users are therefore encouraged to use specific read and/or write command methods if possible.

> Nota: La opción `"readPreference"` no controla el servidor al cual el controlador emite la opración; siempre se ejecutará en este objeto de servidor. En su lugar, podría usarse al emitir una operación a un secundario (desde una conexión de cojunto réplica, no solo) o a un nodo de mongo para asegurarse de que el controlador establece el protocolo de escritura en consecuencia, o añade la preferencia de lectura a la operación, respectivamente.

### Parámetros

`db` (string)

  El nombre de la base de datos en la que ejecutar el comando.

`command` (MongoDB\Driver\Command)

  El comando a ejecutar.

`options`

  options
  Option | Type | Description
  --- | --- | ---
  readConcern | MongoDB\Driver\ReadConcern | Un asunto de escritura a aplicar a la operación. Esta opción está disponible en MongoDB 3.2+ y resultará en una excepción en tiempo de ejecución si es especificada para una versión de servidor más antigua.
  readPreference | MongoDB\Driver\ReadPreference | Una preferencia de lectura a usar para seleccionar un servidor para la operación.
  session | MongoDB\Driver\Session | Una sesión a asociar con la operación.
  writeConcern | MongoDB\Driver\WriteConcern | Un asunto de escritura a aplicar a la operación.

  Advertencia

  Si se usa la opción `"session"` con sesión que tenga una transacción en progreso, no se puede especificar una opción `"readConcern"` o `"writeConcern"`. Esto resultarña en una MongoDB\Driver\Exception\InvalidArgumentException. En su lugar se debería establecer estas dos opciones al crear la transacción con MongoDB\Driver\Session::startTransaction().

### Valores devueltos

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

### Errores/Excepciones

- Lanza una MongoDB\Driver\Exception\InvalidArgumentException si la opción `"session"` se usa con una transacción asociada junto a la opción `"readConcern"` o `"writeConcern"` option.
- Lanza una MongoDB\Driver\Exception\InvalidArgumentException si la opción `"session"` se usa junto a un asunto de escritura no reconocido.
- Lanza una MongoDB\Driver\Exception\InvalidArgumentException en errores de análisis de argumentos.
- Lanza una MongoDB\Driver\Exception\ConnectionException si la conexión al servidor falla (por razones diferentes a la autenticación).
- Lanza una MongoDB\Driver\Exception\AuthenticationException si la autenticación es necesaria y falla.
- Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

### Historial de cambios

Versión | Descripción
--- | ---
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the `"session"` option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an `options` array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

### Notas

> Nota: Es responsabilidad del llamador asegurarse de que el servidor es capaz de ejecutar la operación de escritura. Por ejemplo, ejecutar un 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() - Execute a database command that reads on this server
- MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
- MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
- MongoDB\Driver\Manager::executeCommand() - Execute a database command