2016-04-20 14 views
0

finde ich versuchen this solution für Paginierung in PHP:PHP MongoDB Abfrage

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; 
} 

Aber es gibt eine leere Array result. Auch ich habe diese Abfrage ohne skip und limit versucht, aber das Ergebnis war immer noch ein leeres Array. Wenn $query leer ist, ist alles in Ordnung, es gibt alle Datensätze in colection zurück.

Was mache ich falsch?

SOLUTION
$query = ["_id" => ['$gt' => new MongoId($currentId)]];

+0

Vielleicht ist '$ currentId' vom falschen Typ? Wenn ich anschaue, was Sie versuchen zu tun, denke ich, dass es eine Instanz von "MongoId" sein sollte. – malarzm

+0

Sie haben Recht. '$ query = [" _id "=> ['$ gt' => neue MongoId ($ currentId)]];' funktioniert. Bitte, mach eine Antwort, damit ich es annehmen kann. – ziwert

+0

Froh, es funktioniert, als Antwort hinzugefügt :) – malarzm

Antwort

1

Vielleicht $currentId ist der falsche Typ? Sehen Sie, was Sie versuchen zu tun Ich denke, es sollte Instanz von MongoId sein