MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQuery — 데이터베이스 쿼리 실행


설명

final public MongoDB\Driver\Manager::executeQuery(string $namespace, MongoDB\Driver\Query $query, array $options = array()): MongoDB\Driver\Cursor

"readPreference" 옵션에 따라 서버를 선택하고 해당 서버에서 쿼리를 실행합니다. 기본적으로 MongoDB Connection URI URI의 읽기 기본 설정이 사용됩니다.


매개변수

namespace (string)
정규화된 네임스페이스(예: "databaseName.collectionName").
query (MongoDB\Driver\Query)
실행할 쿼리입니다.
options

options

Option Type 설명
readPreference MongoDB\Driver\ReadPreference 작업을 위한 서버를 선택하는 데 사용할 읽기 기본 설정입니다.
session MongoDB\Driver\Session 작업과 연결할 세션입니다.

반환 값

성공하면 MongoDB\Driver\Cursor를 반환합니다.


오류/예외


변경 로그

버전 설명
PECL mongodb 1.4.0 세 번째 매개변수는 이제 options 배열입니다. 이전 버전과의 호환성을 위해 이 매개변수는 여전히 MongoDB\Driver\ReadPreference 개체를 허용합니다.

Examples

예제 #1 MongoDB\Driver\Manager::executeQuery() 예제

                  
<?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 쿼리 실행 시간 제한

"maxTimeMS" MongoDB\Driver\Query 옵션은 쿼리 실행 시간을 제한하는 데 사용할 수 있습니다. 이 시간 제한은 서버 측에서 적용되며 네트워크 대기 시간을 고려하지 않습니다. 자세한 내용은 MongoDB 설명서에서 » Terminate Running Operations를 참조하세요.

                  
<?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);
}

?>
                  
                

서버에서 1초의 실행 시간 후에도 쿼리가 완료되지 않으면 MongoDB\Driver\Exception\ExecutionTimeoutException이 발생합니다.


기타