MongoDB\Driver\Cursor::isDead

mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — 커서가 모두 소모되었는지 또는 추가 결과가 있는지 확인합니다.


설명

final public MongoDB\Driver\Cursor::isDead(): bool

커서에서 사용할 수 있는 추가 결과가 확실히 없는지 확인합니다. 이 메서드는 MongoDB 셸의 » Cursor.isExhausted() 메서드와 유사하며 » tailable cursors를 반복할 때 주로 유용합니다.

커서는 추가 결과가 없으며 다음 중 하나가 참인 경우 "dead" 것으로 간주됩니다.

  • 현재 배치가 완전히 반복되었으며 커서 ID는 0입니다(즉, » getMore를 실행할 수 없음).
  • 커서를 반복하는 동안 오류가 발생했습니다.
  • 커서가 구성된 제한에 도달했습니다.

의도적으로 커서에 추가 결과가 있는지 여부를 항상 확인할 수 있는 것은 아닙니다. 커서가 더 많은 데이터를 사용할 수 있는 경우는 다음과 같습니다.

  • 클라이언트 측에서 버퍼링되는 현재 배치에 추가 문서가 있습니다. 반복하면 로컬 버퍼에서 문서를 가져옵니다.
  • 현재 배치(로컬 버퍼)에는 추가 문서가 없지만 커서 ID는 0이 아닙니다. 반복은 » getMore 작업을 통해 서버에서 더 많은 문서를 요청합니다. 이 작업은 추가 결과를 반환하거나 반환하지 않을 수 있으며/또는 ID에 대해 0을 반환하여 서버에서 커서가 닫혔음을 나타냅니다.

매개변수

이 함수에는 매개변수가 없습니다.


반환 값

커서에서 사용할 수 있는 추가 결과가 확실히 없으면 true를 반환하고 그렇지 않으면 false를 반환합니다.


오류/예외


Examples

예제 #1 MongoDB\Driver\Cursor::isDead() 예제

                  
<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

?>
                  
                

위의 예는 다음을 출력합니다.

bool(false)
bool(false)
bool(false)
bool(true)
                

기타