Menu
CoddyTech

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 ancien

Sur 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.

challenge icon

Défi

Facile

Conserve 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

Entraînez-vous par vous-même : Playground Express