(mongodb >=1.0.0)
MongoDB\Driver\Server::executeCommand — 在此服务器上执行数据库命令
$db
, MongoDB\Driver\Command $command
, array|MongoDB\Driver\ReadPreference|null $options
= null
): MongoDB\Driver\Cursor在此服务器上执行命令。
此方法不会对命令应用任何特殊逻辑。 "readPreference"
、"readConcern"
和 "writeConcern"
选项的默认值将从活动事务(由 "session"
选项指示)推断。如果没有活动事务,将使用主读取首选项进行服务器选择。
默认值不会从 连接 URI 推断。因此,鼓励用户尽可能使用特定的读写命令方法。
注意:
"readPreference"
选项不会控制驱动程序向其发出操作的服务器;它始终将在此服务器对象上执行。相反,它可以在向辅助(来自副本集连接,而不是独立)或 mongos 节点发出操作时使用,以确保驱动程序相应地设置线协议或分别将读取首选项添加到操作中。
db
(string)要执行命令的数据库的名称。
command
(MongoDB\Driver\Command)要执行的命令。
选项
选项 | 类型 | 说明 |
---|---|---|
readConcern | MongoDB\Driver\ReadConcern |
要应用于操作的读取关注。 此选项在 MongoDB 3.2+ 中可用,如果为旧版服务器版本指定,将在执行时导致异常。 |
readPreference | MongoDB\Driver\ReadPreference |
用于为操作选择服务器的读取首选项。 |
session | MongoDB\Driver\Session |
要与操作关联的会话。 |
writeConcern | MongoDB\Driver\WriteConcern |
要应用于操作的写入关注。 |
如果您使用的是 "session"
,该 "session"
正在进行事务,则不能指定 "readConcern"
或 "writeConcern"
选项。这会导致抛出 MongoDB\Driver\Exception\InvalidArgumentException。相反,您应该在使用 MongoDB\Driver\Session::startTransaction() 创建事务时设置这两个选项。
如果成功,则返回 MongoDB\Driver\Cursor。
"session"
选项与关联的事务一起使用,并结合 "readConcern"
或 "writeConcern"
选项,则会抛出 MongoDB\Driver\Exception\InvalidArgumentException。"session"
选项与未确认的写入关注一起使用,则会抛出 MongoDB\Driver\Exception\InvalidArgumentException。
版本 | 说明 |
---|---|
PECL mongodb 1.4.4 |
如果 "session" 选项与未确认的写入关注一起使用,则会抛出 MongoDB\Driver\Exception\InvalidArgumentException。 |
PECL mongodb 1.4.0 | 第三个参数现在是 options 数组。为了向后兼容,此参数仍然接受 MongoDB\Driver\ReadPreference 对象。 |
注意: 确保服务器能够执行写入操作是调用者的责任。例如,在辅助(不包括其“本地”数据库)上执行写入操作将失败。