(mongodb >=1.0.0)
MongoDB\Driver\Server::executeCommand — 在此服务器上执行数据库命令
$db
, MongoDB\Driver\Command $command
, 数组|MongoDB\Driver\ReadPreference|null $options
= null
): MongoDB\Driver\Cursor在此服务器上执行命令。
此方法不对命令应用任何特殊逻辑。"readPreference"
、"readConcern"
和 "writeConcern"
选项的默认值将从活动事务(由 "session"
选项指示)推断。如果没有活动事务,则将使用主读偏好来选择服务器。
默认值 *不会* 从连接 URI 推断。因此,鼓励用户尽可能使用特定的读和/或写命令方法。
注意:
"readPreference"
选项不控制驱动程序发出操作的服务器;它将始终在此服务器对象上执行。相反,当向辅助节点(来自副本集连接,而非独立节点)或 mongos 节点发出操作时,它可用于确保驱动程序相应地设置线路协议或分别将读偏好添加到操作。
db
(字符串)要执行命令的数据库名称。
command
(MongoDB\Driver\Command)要执行的命令。
选项
选项 | 类型 | 描述 |
---|---|---|
readConcern | MongoDB\Driver\ReadConcern |
要应用于操作的读取关注点。 此选项在 MongoDB 3.2+ 中可用,如果为旧版服务器版本指定此选项,则会在执行时导致异常。 |
readPreference | MongoDB\Driver\ReadPreference |
用于为操作选择服务器的读取偏好。 |
session | MongoDB\Driver\Session |
要与操作关联的会话。 |
writeConcern | MongoDB\Driver\WriteConcern |
要应用于操作的写入关注点。 |
如果您正在使用正在进行事务的 "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 对象。 |
注意: 确保服务器能够执行写入操作是调用者的责任。例如,在辅助节点(不包括其“local”数据库)上执行写入操作将失败。