Jestem zaznajomiona z najlepszą praktyką range based pagination w dużych kolekcjach MongoDB, jednak mam problem z wymyśleniem w jaki sposób paginować kolekcję, w której wartość sortowania znajduje się na nieunikalnym polu.MongoDB - Paginacja oparta na nieunikalnych polach
Na przykład mam dużą kolekcję użytkowników i istnieje pole do tego, ile razy coś zrobili. To pole jest z pewnością nieunikalne i może zawierać duże grupy dokumentów o tej samej wartości.
Chciałbym zwrócić wyniki posortowane według tego pola "numTimesDoneSomething".
Oto przykładowy zestaw danych:
{_id: ObjectId("50c480d81ff137e805000003"), numTimesDoneSomething: 12}
{_id: ObjectId("50c480d81ff137e805000005"), numTimesDoneSomething: 9}
{_id: ObjectId("50c480d81ff137e805000006"), numTimesDoneSomething: 7}
{_id: ObjectId("50c480d81ff137e805000007"), numTimesDoneSomething: 1}
{_id: ObjectId("50c480d81ff137e805000002"), numTimesDoneSomething: 15}
{_id: ObjectId("50c480d81ff137e805000008"), numTimesDoneSomething: 1}
{_id: ObjectId("50c480d81ff137e805000009"), numTimesDoneSomething: 1}
{_id: ObjectId("50c480d81ff137e805000004"), numTimesDoneSomething: 12}
{_id: ObjectId("50c480d81ff137e805000010"), numTimesDoneSomething: 1}
{_id: ObjectId("50c480d81ff137e805000011"), numTimesDoneSomething: 1}
Jak wrócę to zestaw danych posortowanych według „numTimesDoneSomething” z 2 rekordów na stronie?
Czy 'find ({_ id: last_id})' nie zwróci mi tylko jednego rekordu? –
zapytanie musi być większe niż last_id, prawda? Twoje rozwiązanie obejmuje również przypadek nowych wstawek +1 dla tego =) – cubbuk
@cubbuk O tak, prawda lol :) – Sammaye