Menu
CoddyTech

Ograniczanie do pierwszych wyników

Część sekcji Bazy danych z MongoDB ścieżki Node.js w Coddy. Lekcja 12 z 29.

Strona wyświetlająca dwie najnowsze książki potrzebuje tylko dwóch pierwszych wyników. Kursor ma do tego metodę limit. Limit określa liczbę dokumentów, a nie wartość pola.

await books.find().sort({year: 1}).limit(1).toArray();
// [Emma], najstarsza książka

W przypadku kursora find MongoDB sortuje przed ograniczeniem wyników, niezależnie od kolejności łączenia wywołań. Zapisz sortowanie jako pierwsze, aby kod odczytywało się w tej kolejności. Nawet gdy limit wynosi jeden, zwracana jest tablica. Jeśli pasuje mniej dokumentów niż wynosi limit, baza danych zwraca dostępne dokumenty. Nie dodaje pustych elementów zastępczych.

Wartość zapytania jest tekstem: Number(input.page) || 1 używa jej wartości liczbowej albo 1, gdy jej brakuje. Ta praktyka akceptuje dodatnie liczby całkowite.

challenge icon

Wyzwanie

Łatwy

Zachowaj dostarczone sortowanie od najnowszych do najstarszych. Ogranicz wyniki za pomocą input.n z ciągu zapytania; użyj wartości 2, gdy jej brakuje. Zwróć dokumenty bez zmian.

Wypróbuj uruchomienie: GET /result?n=2 zwraca najpierw Kindred, a następnie Dune. Przy ?n=1 pozostaje tylko Kindred. Gdy nie podano n, domyślnie zwracane są dwa wyniki. Wartości wejściowe to dodatnie liczby całkowite.

Spróbuj swoich sił

export async function exercise(books, input) {
    return await books.find().sort({ year: -1 }).toArray();
}

Wszystkie lekcje w sekcji Bazy danych z MongoDB

Poćwicz samodzielnie: Edytor online Express