MongoDB\Driver\Manager::executeQuery
(mongodb >=1.0.0)
MongoDB\Driver\Manager::executeQuery — Execute a database query
説明
final public MongoDB\Driver\Manager::executeQuery
( string $namespace
, MongoDB\Driver\Query $query
[, array $options
= array()
] ) : MongoDB\Driver\Cursor
Selects a server according to the "readPreference"
option
and executes the query on that server. By default, the read preference from
the MongoDB Connection
URI will be used.
パラメータ
namespace
(string)完全修飾形式の名前空間 (
"databaseName.collectionName"
)。query
(MongoDB\Driver\Query)実行するクエリ。
options
- {|
|+ options
! Option
! Type
! Description
|-
| 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.
|}
エラー / 例外
- 引数のパースに失敗した場合に MongoDB\Driver\Exception\InvalidArgumentException をスローします。
- サーバーへの接続が認証以外の理由で失敗した場合に MongoDB\Driver\Exception\ConnectionException をスローします。
- 認証が必要な場面で認証に失敗した場合に MongoDB\Driver\Exception\AuthenticationException をスローします。
- Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid query operators).
変更履歴
バージョン | 説明 |
---|---|
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. |
例
例1 MongoDB\Driver\Manager::executeQuery() example
<?php$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");$bulk = new MongoDB\Driver\BulkWrite;$bulk->insert(['x' => 1]);$bulk->insert(['x' => 2]);$bulk->insert(['x' => 3]);$manager->executeBulkWrite('db.collection', $bulk);$filter = ['x' => ['$gt' => 1]];$options = [ 'projection' => ['_id' => 0], 'sort' => ['x' => -1],];$query = new MongoDB\Driver\Query($filter, $options);$cursor = $manager->executeQuery('db.collection', $query);foreach ($cursor as $document) { var_dump($document);}?>
上の例の出力は以下となります。
object(stdClass)#6 (1) { ["x"]=> int(3) } object(stdClass)#7 (1) { ["x"]=> int(2) }
例2 Limiting execution time for a query
The "maxTimeMS"
MongoDB\Driver\Query option may be used to limit the
execution time of a query. Note that this time limit is enforced on the
server side and does not take network latency into account. See
» Terminate Running Operations
in the MongoDB manual for more information.
<?php$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');$filter = ['x' => ['$gt' => 1]];$options = [ 'maxTimeMS' => 1000,];$query = new MongoDB\Driver\Query($filter, $options);$cursor = $manager->executeQuery('db.collection', $query);foreach ($cursor as $document) { var_dump($document);}?>
If the query fails to complete after one second of execution time on the server, a MongoDB\Driver\Exception\ExecutionTimeoutException will be thrown.
参考
- MongoDB\Driver\Cursor
- MongoDB\Driver\Query
- MongoDB\Driver\ReadPreference
- MongoDB\Driver\Server::executeQuery() - Execute a database query on this server