Php/docs/mongodb-driver-manager.executequery

来自菜鸟教程
跳转至:导航、​搜索

MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQueryExecute 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)

A fully qualified namespace (e.g. "databaseName.collectionName").

query (MongoDB\Driver\Query)

The query to execute.

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.

|}


返回值

Returns MongoDB\Driver\Cursor on success.


错误/异常


更新日志

版本 说明
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.


范例

Example #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)
}

Example #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.