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ù vecchioSu 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.
Sfida
FacileMantieni 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
1Documenti
Un libro come documentoRaccolte e databaseConnessione a MongoDBLettura dei documenti memorizzatiInserimento di documentiRicerca di un documentoRicerca tramite ObjectIdConfronto tra numeriFiltri di queryScelta dei campi restituitiOrdinamento dei risultati della queryMantenere i primi risultatiProiezione, ordinamento e limiteEsercitati da solo: Playground Express