MongoDB\Driver\Server::executeCommand
Execute a database command on this server
Description
final public MongoDB\Driver\Cursor MongoDB\Driver\Server::executeCommand(string $db
, MongoDB\Driver\Command $command
, arrayMongoDB\Driver\ReadPreferencenull $options
= null
)
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.
Note:
The "readPreference"
option does not control the server
to which the driver issues the operation; it will always be executed on
this server object. Instead, it may be used when issuing the operation to a
secondary (from a replica set connection, not standalone) or mongos node to
ensure that the driver sets the wire protocol accordingly or adds the read
preference to the operation, respectively.
Parameters
-
db
(string)
-
The name of the database on which to execute the command.
-
command
(MongoDB\Driver\Command)
-
The command to execute.
-
options
-
options
Option |
Type |
Description |
readConcern |
MongoDB\Driver\ReadConcern |
A read concern to apply to the operation.
This option is available in MongoDB 3.2+ and will result in an
exception at execution time if specified for an older server
version.
|
readPreference |
MongoDB\Driver\ReadPreference |
A read preference to use for selecting a server for the operation.
|
session |
MongoDB\Driver\Session |
A session to associate with the operation.
|
writeConcern |
MongoDB\Driver\WriteConcern |
A write concern to apply to the operation.
|
Warning
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.
Return Values
Returns MongoDB\Driver\Cursor on success.
Errors/Exceptions
- Throws MongoDB\Driver\Exception\InvalidArgumentException if the
"session"
option is used with an associated transaction in combination with a "readConcern"
or "writeConcern"
option.
- Throws MongoDB\Driver\Exception\InvalidArgumentException if the
"session"
option is used in combination with an unacknowledged write concern.
- Throws MongoDB\Driver\Exception\InvalidArgumentException on argument parsing errors.
- Throws MongoDB\Driver\Exception\ConnectionException if connection to the server fails (for reasons other than authentication).
- Throws MongoDB\Driver\Exception\AuthenticationException if authentication is needed and fails.
- Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).
Notes
Note:
It is the caller's responsibility to ensure that the server is capable
of executing the write operation. For example, executing a write operation
on a secondary (excluding its "local" database) will fail.
See Also
- MongoDB\Driver\Command
- MongoDB\Driver\Cursor
- MongoDB\Driver\Server::executeReadCommand
- MongoDB\Driver\Server::executeReadWriteCommand
- MongoDB\Driver\Server::executeWriteCommand
- MongoDB\Driver\Manager::executeCommand