2016-04-20 4 views
0

Я пытаюсь использовать this solution для пагинации в PHP:PHP MongoDB найти запрос

public function getRecords($page, $count, $currentId) 
{ 
    $query = ["_id" => ['$gt' => $currentId]]; //what's wrong here? 
    $cursor = $this->recordsCollection->find($query)-> 
    skip(($page-1) * $count)-> 
    limit($count)-> 
    sort(["_id" => true]); 

    $result = array(); 
    foreach ($cursor as $doc) { 
     array_push($result, $doc); 
    } 
    return $result; 
} 

Но он возвращает пустой массив result. Также я попробовал этот запрос без skip и limit, но результат все равно был пустым массивом. Если $query пуст, все в порядке, оно возвращает все записи в colection.

Что я делаю неправильно?

РЕШЕНИЕ
$query = ["_id" => ['$gt' => new MongoId($currentId)]];

+0

Может быть, '$ currentId' неправильного типа? Глядя на то, что вы пытаетесь сделать, я думаю, что это должен быть экземпляр 'MongoId' – malarzm

+0

Вы правы. '$ query = [" _id "=> ['$ gt' => новый MongoId ($ currentId)]];' работает. Пожалуйста, сделайте ответ, чтобы я мог принять его. – ziwert

+0

Рад, что он работает, добавлен в качестве ответа :) – malarzm

ответ

1

Может $currentId имеет неправильный тип? Глядя на то, что вы пытаетесь сделать, я думаю, что это должен быть пример MongoId

Смежные вопросы