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)]];
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
Sie haben Recht. '$ query = [" _id "=> ['$ gt' => neue MongoId ($ currentId)]];' funktioniert. Bitte, mach eine Antwort, damit ich es annehmen kann. – ziwert
Froh, es funktioniert, als Antwort hinzugefügt :) – malarzm