# MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

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

### Beschreibung

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

Executes the command on this server.

This method applies no special logic to the command. The Default values for the `"readPreference"`, `"readConcern"`, and `"writeConcern"` options will be inferred from an active transaction (indicated by the `"session"` option). If there is no active transaction, a primary read preference will be used for server selection.

Default values will not be inferred from the connection URI. Users are therefore encouraged to use specific read and/or write command methods if possible.

> Hinweis: Die Option `"readPreference"` steuert nicht den Server, an den der Treiber die Operation ausgibt; sie wird immer auf diesem Serverobjekt ausgeführt. Stattdessen kann sie verwendet werden, wenn die Operation an einen sekundären Knoten (von einer Replikatsatzverbindung, keinen eigenständigen) oder einen Mongos-Knoten ausgegeben wird, um sicherzustellen, dass der Treiber das Übertragungsprotokoll entsprechend einstellt bzw. die Lesepräferenz zur Operation hinzufügt.

### Parameter-Liste

`db` (string)

  The name of the database on which to execute the command.

`command` (MongoDB\Driver\Command)

  Der auszuführende Befehl.

`options`

  options
  Option | Type | Description
  --- | --- | ---
  readConcern | MongoDB\Driver\ReadConcern | Ein Leseanliegen (Read Concern), das auf den Vorgang angewendet werden soll. Diese Option ist ab MongoDB 3.2 verfügbar. Wenn sie für eine ältere Serverversion angegeben wird, kommt es bei der Ausführung zu einer Exception.
  readPreference | MongoDB\Driver\ReadPreference | Eine Lesepräferenz, die verwendet wird, um einen Server für die Operation auszuwählen.
  session | MongoDB\Driver\Session | Eine Session, die mit dem Vorgang verknüpft werden soll.
  writeConcern | MongoDB\Driver\WriteConcern | Eine Schreibanweisung (Write Concern), das auf den Vorgang angewendet werden soll.

  Warnung

  If you are using a `"session"` which has a transaction in progress, you cannot specify a `"readConcern"` or `"writeConcern"` option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

### Rückgabewerte

Gibt bei Erfolg einen MongoDB\Driver\Cursor zurück.

### Fehler/Exceptions

- Wirft eine MongoDB\Driver\Exception\InvalidArgumentException, wenn die Option `"session"` mit einer zugehörigen Transaktion in Kombination mit einer der Optionen `"readConcern"` oder `"writeConcern"` verwendet wird.
- Wirft eine MongoDB\Driver\Exception\InvalidArgumentException, wenn die Option `"session"` in Kombination mit einer unbestätigten Schreibanweisung verwendet wird.
- Wirft eine MongoDB\Driver\Exception\InvalidArgumentException, wenn beim Analysieren von Argumenten ein Fehler auftritt.
- Wirft eine MongoDB\Driver\Exception\ConnectionException, wenn der Aufbau einer Verbindung zum Server fehlschlägt (aus einem anderen Grund als der Authentifizierung).
- Wirft eine MongoDB\Driver\Exception\AuthenticationException, wenn eine Authentifizierung erforderlich ist und fehlschlägt.
- Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

### Changelog

Version | Beschreibung
--- | ---
PECL mongodb 2.0.0 | The `options` parameter no longer accepts a MongoDB\Driver\ReadPreference instance.
PECL mongodb 1.21.0 | Passing a MongoDB\Driver\ReadPreference object as `options` is deprecated and will be removed in 2.0.
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.

### Anmerkungen

> Hinweis: Es liegt in der Verantwortung des aufrufenden Codes, sicherzustellen, dass der Server in der Lage ist, den Schreibvorgang auszuführen. So schlägt beispielsweise die Ausführung eines Schreibvorgangs auf einem sekundären Server (mit Ausnahme seiner "lokalen" Datenbank) fehl.

### Siehe auch

- 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

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