MongoDB - PHP - MongoCursorException'未找到游标

时间:2012-10-09 06:59:09

标签: php mongodb mongodb-php

找到类似问题的解决方案 - 使用超时(-1);和不朽的(真实的); - 没有任何帮助:(

我在这段代码时遇到此错误:

$this->start_time = microtime(true);
    $documents = 0;
    $offset = 0; 
    $files = array();

    $mongo = new Mongo();

    $db = Yii::app()->params['mongo']['db'];
    $db->immortal(true);
    $collection = Yii::app()->params['mongo']['collection'];
    $collection_serial = 'new_serial_number';

    $serial_numbers = $mongo->$db->$collection_serial->find();
    $serial_numbers->timeout(-1);

    $update = false;

    foreach ($serial_numbers as $serial_number) {

   //some code here        
    }

可能是什么问题?

1 个答案:

答案 0 :(得分:2)

注意:: 超时不朽之间存在重要区别! 超时表示在客户端侧等待的时间,而不朽将光标设置在服务器侧。

对于分片环境中的大型结果集尤其有用。

-

你在哪一行获得例外?

确保在光标上使用超时或不朽:

$cursor = $collection->find();
$cursor->immortal(true); // this
$cursor->timeout(-1); // or this