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 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
    • ¥15 乘性高斯噪声在深度学习网络中的应用
    • ¥15 运筹学排序问题中的在线排序
    • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
    • ¥30 求一段fortran代码用IVF编译运行的结果
    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败
    • ¥20 有人能用聚类分析帮我分析一下文本内容嘛