2017-11-24 1 views
0

PHPを使用してMongoDBからデータにアクセスするときにページネゴシエーションを実装しようとしています。 MySQLでは、私はOFFSETLIMITを使用しました。私のGoogle検索によると、PHP-MongoDBの代替品はskip()limit()です。MongoDB PHPドライバと関連するPHPLibライブラリのskip()とlimit()を使用した単純なページネーションを実装する際のエラー

しかし、これらの関数を使用しようとすると、致命的なエラーが発生します。

Fatal error: Uncaught Error: Call to undefined method MongoDB\Driver\Cursor::skip() in /var/www/html/Tests/test_mongo_two/test.php:12 Stack trace: #0 {main} thrown in /var/www/html/Tests/test_mongo_two/test.php on line 12 

次は、この問題を示す例です(SSCCE)。質問は、どこが間違っているのでしょうか?私は何が欠けていますか?これをどうやって解決するのですか?

<?php 

require 'vendor/autoload.php'; 
$connection = new MongoDB\Client("mongodb://localhost:27017"); 


$db = $connection->Traffic; 
$collection = $db->frameLengthsCollection; 


#$allDataCursor = $collection->find(); 
$allDataCursor = $collection->find()->skip(25)->limit(25); 
#$allDataCursor = $allDataCursor->limit(25); 
#$allDataCursor = $allDataCursor->skip(25); 





/** 
* Prettifying (is that a word?) of data 
*/ 
$allDataCursorConvertedToArray = array(); 
foreach ($allDataCursor as $key => $value) { 
    $json = MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($value)); 
    $allDataCursorConvertedToArray[] = json_decode($json, true); 
} 




/** 
* Display! 
*/ 
#echo "allDataCursorConvertedToArray: "; print_r($allDataCursorConvertedToArray); echo "<br><br>"; 
// 
foreach ($allDataCursorConvertedToArray as $key => $value) { 
    print_r($value); 
    break; 
} 

?> 

答えて

0

この使用してみてください:

<?php 

$filter = []; 
$options = [ 
    'limit' => 25, 
    'skip' => 25 
]; 

$allDataCursor = $collection->find($filter, options); 

?> 
関連する問題