Das CouchDB HTTP View API gibt viel Spielraum Paging zu tun effizient . Die einfachste Methode wäre startkey
und count
. Count ist die maximale Anzahl von Einträgen, die CouchDB für diese Ansichtsanfrage zurückgibt, was Ihrem Design entspricht, und startkey ist der Punkt, an dem CouchDB starten soll. Wenn Sie die Ansicht anfordern, wird Ihnen außerdem angezeigt, wie viele Einträge vorhanden sind. So können Sie berechnen, wie viele Seiten vorhanden sind, wenn Sie dies den Benutzern anzeigen möchten.
Also die erste Anfrage würde keinen Startschlüssel angeben, nur die Anzahl für die Anzahl der Einträge, die Sie anzeigen möchten. Sie können dann den Schlüssel des letzten zurückgegebenen Eintrags notieren und diesen als Startschlüssel für die nächste Seite verwenden. In dieser einfachen Form erhalten Sie eine Überlappung, wobei der letzte Eintrag einer Seite der erste der nächsten ist. Wenn dies nicht erwünscht ist, ist es einfach, den letzten Eintrag der Seite nicht anzuzeigen.
Eine einfachere Methode hierfür ist die Verwendung des Skip-Parameters, um das Startdokument für die Seite zu erstellen. Diese Methode sollte jedoch mit Vorsicht verwendet werden. Der Skip-Parameter bewirkt einfach, dass die interne Engine keine Einträge zurückgibt, über die sie iteriert. Während dies das gewünschte Verhalten ergibt, ist es viel langsamer als das Finden des ersten Dokuments für die Seite nach Schlüssel. Je mehr Dokumente übersprungen werden, desto langsamer wird die Anfrage.
Das Problem mit dieser Vorgehensweise ist, dass Sie nicht mehrmals vorher klicken können, nur einmal. Sie müssen entweder ALLE möglichen Erst-in-Seiten manuell indizieren, wenn Sie auf die nächsten Seiten gehen, oder Sie können nur eine Seite zurückgehen und dann haben Sie keinerlei Informationen mehr, um zu einer vorherigen Seite zu gelangen. – for3st
Für diejenigen, die hier stolpern und auch auf das Dilemma von @ for3st stoßen, helfen die natürlichen Eigenschaften eines Arrays, dieses Problem zu beheben. Durch 'push()' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '_id' '' _id'' wird in das Array '_id' geklickt(), wenn Sie vorher klicken. Alles, was Sie tun müssen, ist nur ein Array von ganzen Zahlen. – wootencl