mysql — Ошибка реализации простого разбиения на страницы с помощью skip () и limit () в PHP-драйвере MongoDB и связанной библиотеке PHPLib

Я пытаюсь реализовать нумерацию страниц при доступе к данным из MongoDB с помощью PHP. В MySQL я бы использовал OFFSET а также LIMIT. Мой поиск в Google сказал мне, что альтернатива PHP-MongoDB 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);

?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]