donglu6805 2016-09-28 08:30
浏览 43

PHP Mongo Cursor循环失败

I'm looping a queried mongodb cursor in php to index documents in elastic.

The indexing process breaks as I randomly get following error in the cursor loop:

======================================================================
   The application has thrown an exception!
======================================================================
 MongoDB\Driver\Exception\UnexpectedValueException
 Could not convert BSON document to a PHP variable
----------------------------------------------------------------------

It happens in this line:

foreach ($webpageCursor as $id => $webpage) {...

I'm not even able to output the maybe invalid object, so I don't know which one is causing it.

Is there a way to avoid this problem?

EDIT:

Here the cursor creation code:

/**
 * Get webpages
 *
 * @param string $database The database name
 * @param int $limit The limit for the query
 * @return \MongoCursor
 */
public function getDocumentsCursor($database, $limit = null)
{
    $mongoClient = $this->getMongoDbService()->getMongoDbClient();

    $collection = $mongoClient->selectCollection($database, 'documents');

    return $collection->find(
        [
            'text' => [
                '$exists' => true
            ],
            'parsed' => [
                '$ne' => new \MongoDB\BSON\UTCDateTime(-62135596800000),
            ],
            'fetched' => [
                '$ne' => new \MongoDB\BSON\UTCDateTime(-62135596800000),
            ],
            'pointsToCanoncial' => [
                '$ne' => true
            ],
            'noIndex' => [
                '$ne' => true
            ],
            'lastStatusCode' => [
                '$gte' => 200,
                '$lt' => 300
            ]
        ],
        [
            'noCursorTimeout' => true,
            'projection' => [
                '_id' => true,
                'meta' => true,
                'url' => true,
                'text' => true,
                'contentType', true,
                'header' => true,
                'inlinks' => true,
            ],
            'limit' => $limit,
        ]
    );
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 孟德尔随机化结果不一致
    • ¥20 求用stm32f103c6t6在lcd1206上显示Door is open和password:
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)
    • ¥15 keil里为什么main.c定义的函数在it.c调用不了
    • ¥50 切换TabTip键盘的输入法