(mongodb >=1.0.0)
MongoDB\Driver\Server::executeCommand — Ejecuta un comando de base de datos en este servidor
$db
, MongoDB\Driver\Command $command
, ?array $options
= null
): MongoDB\Driver\CursorEjecuta 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 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.
db
(string)El nombre de la base de datos en la que ejecutar el comando.
command
(MongoDB\Driver\Command)El comando a ejecutar.
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. |
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().
Devuelve un MongoDB\Driver\Cursor en caso de éxito.
"session"
se usa con una transacción asociada junto a la opción "readConcern"
o "writeConcern"
option."session"
se usa junto a un asunto de escritura no reconocido.
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.
|
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á.