Skip to content

Lire des données

Voici un exemple de code pour lire des données :

javascript
// Importation de Mongoose
import mongoose from 'mongoose';

// Connexion à MongoDB
mongoose.connect('mongodb://localhost:27017/maBibliotheque');

// Création d'un modèle pour les "livres"
const Livre = mongoose.model('Livre', { titre: String });

// Lecture des données
Livre.find({}, (err, livres) => {
  if (err) {
    console.error(err);
  } else {
    console.log('Livres trouvés :', livres);
  }
});
// Importation de Mongoose
import mongoose from 'mongoose';

// Connexion à MongoDB
mongoose.connect('mongodb://localhost:27017/maBibliotheque');

// Création d'un modèle pour les "livres"
const Livre = mongoose.model('Livre', { titre: String });

// Lecture des données
Livre.find({}, (err, livres) => {
  if (err) {
    console.error(err);
  } else {
    console.log('Livres trouvés :', livres);
  }
});

Dans cet exemple, nous connectons notre application Node.js à MongoDB via Mongoose, puis nous utilisons le modèle Livre pour lire tous les livres de notre collection.

Très bien, approfondissons notre exemple avec les livres pour illustrer comment utiliser .limit(), .sort(), et .select() dans Mongoose. Ces méthodes nous aident à mieux contrôler les données que nous récupérons de notre "bibliothèque" MongoDB.

limit, sort, et select

Imaginons que nous voulons récupérer une liste spécifique de livres dans notre bibliothèque numérique. Nous voulons limiter le nombre de livres affichés, les trier par un certain critère, et sélectionner uniquement certains attributs des livres.

Voici comment nous pouvons le faire :

javascript
// Lecture des données avec .limit(), .sort(), et .select()
Livre.find({})
  .limit(5) // Limite à 5 livres
  .sort({ titre: 1 }) // Trie les livres par titre dans l'ordre alphabétique
  .select({ titre: 1, auteur: 1 }) // Sélectionne uniquement le titre et l'auteur des livres
  .exec((err, livres) => {
    if (err) {
      console.error(err);
    } else {
      console.log('Livres sélectionnés :', livres);
    }
  });
// Lecture des données avec .limit(), .sort(), et .select()
Livre.find({})
  .limit(5) // Limite à 5 livres
  .sort({ titre: 1 }) // Trie les livres par titre dans l'ordre alphabétique
  .select({ titre: 1, auteur: 1 }) // Sélectionne uniquement le titre et l'auteur des livres
  .exec((err, livres) => {
    if (err) {
      console.error(err);
    } else {
      console.log('Livres sélectionnés :', livres);
    }
  });

Dans cet exemple :

  • .limit(5) limite le nombre de documents retournés à 5.
  • .sort({ titre: 1 }) trie les livres par leur titre dans un ordre croissant (utilisez -1 pour un ordre décroissant).
  • .select({ titre: 1, auteur: 1 }) spécifie que seuls les champs titre et auteur des documents doivent être inclus dans les résultats.

Astuces et Bonnes Pratiques

Maîtrisez la récupération des données ::

  • Utilisez .limit() pour contrôler la charge sur le serveur et améliorer les performances, en particulier pour les grandes collections.
  • Employez .sort() pour organiser les données de manière significative, facilitant ainsi l'analyse ou l'affichage côté client.
  • Avec .select(), récupérez uniquement les champs nécessaires pour réduire l'utilisation de la bande passante et accélérer les requêtes.