Conserver les premiers résultats
Fait partie de la section Bases de données avec MongoDB du Journey Node.js de Coddy. Leçon 12 sur 29.
Une page qui affiche les deux livres les plus récents n’a besoin que des deux premiers résultats. Un curseur possède une méthode limit à cet effet. La limite correspond à un nombre de documents, et non à une valeur de champ.
await books.find().sort({year: 1}).limit(1).toArray();
// [Emma], le livre le plus ancienSur un curseur find, MongoDB effectue le tri avant la limitation, quel que soit l’ordre dans lequel tu enchaînes les appels. Écris sort en premier pour que le code se lise dans cet ordre. Un tableau est quand même renvoyé lorsque la limite est de un. Si moins de documents correspondent que la limite, la base de données renvoie les documents disponibles. Aucun espace réservé vide n’est ajouté.
Une valeur de requête est du texte : Number(input.page) || 1 utilise sa valeur numérique, ou 1 si elle est manquante. Cette pratique accepte les nombres entiers positifs.
Défi
FacileConserve le tri fourni du plus récent au plus ancien. Limite les résultats à l’aide de input.n dans la chaîne de requête ; utilise 2 s’il est absent. Renvoie les documents sans les modifier.
Essaie « Jouer » : GET /result?n=2 renvoie Kindred puis Dune. Avec ?n=1, seul Kindred reste. En l’absence de n, la valeur par défaut est de deux résultats. Les entrées sont des nombres entiers positifs.
Essayez vous-même
export async function exercise(books, input) {
return await books.find().sort({ year: -1 }).toArray();
}
Toutes les leçons de Bases de données avec MongoDB
1Documents
Un livre comme documentCollections et bases de donnéesSe connecter à MongoDBLire des documents stockésInsérer des documentsTrouver un documentRechercher par ObjectIdComparer des nombresFiltres de requêteChoisir les champs renvoyésTrier les résultats de requêteConserver les premiers résultatsProjection, tri et limiteEntraînez-vous par vous-même : Playground Express