Menu
CoddyTech

Mantenere i primi risultati

Fa parte della sezione Database con MongoDB del percorso Node.js di Coddy. Lezione 12 di 29.

Una pagina che mostra i due libri più recenti ha bisogno solo dei primi due risultati. Un cursore ha un metodo limit per questo. Il limite è un numero di documenti, non il valore di un campo.

await books.find().sort({year: 1}).limit(1).toArray();
// [Emma], il libro più vecchio

Su un cursore find, MongoDB esegue l'ordinamento prima di applicare il limite, indipendentemente dall'ordine in cui concateni le chiamate. Scrivi prima sort, così il codice viene letto in quest'ordine. Viene comunque restituito un array quando il limite è uno. Se corrispondono meno documenti del limite, il database restituisce i documenti disponibili. Non vengono aggiunti segnaposto vuoti.

Un valore di query è testo: Number(input.page) || 1 usa il suo valore numerico oppure 1 quando è assente. Questa pratica accetta numeri interi positivi.

challenge icon

Sfida

Facile

Mantieni l'ordinamento fornito, dal più recente al meno recente. Limita i risultati usando input.n dalla stringa di query; usa 2 se non è presente. Restituisci i documenti senza modificarli.

Prova a eseguire: GET /result?n=2 restituisce prima Kindred e poi Dune. Con ?n=1, rimane solo Kindred. Se n non è presente, il valore predefinito è due risultati. Gli input sono numeri interi positivi.

Provalo tu

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

Tutte le lezioni di Database con MongoDB

Esercitati da solo: Playground Express