Création de Données dans MongoDB

La création de données, souvent abrégée par le terme “Create”, représente le premier pilier des opérations CRUD dans MongoDB. Ce chapitre se plonge dans les détails de la manière dont vous pouvez créer de nouveaux documents au sein de vos collections MongoDB, en mettant en lumière les méthodes, les meilleures pratiques, et les considérations importantes pour assurer une insertion efficace et cohérente des données.

Méthodes d’Insertion

MongoDB propose plusieurs méthodes pour l’insertion de données, chacune adaptée à des scénarios particuliers :

  1. insertOne() : Cette méthode permet d’ajouter un seul document à la collection. Elle prend en argument un objet JSON représentant le document à insérer.

    // Exemple d'insertion d'un document unique
    db.ma_collection.insertOne({ "nom": "John Doe", "age": 25, "ville": "Villebourg" });
  2. insertMany() : Utilisée pour insérer plusieurs documents en une seule opération, cette méthode prend un tableau d’objets JSON en tant qu’argument.

    // Exemple d'insertion de plusieurs documents
    db.ma_collection.insertMany([
      { "nom": "Jane Doe", "age": 30, "ville": "Villeville" },
      { "nom": "Bob Smith", "age": 28, "ville": "Smithville" }
    ]);
  3. insert() : Bien que les méthodes insertOne() et insertMany() soient plus explicites, vous pouvez également utiliser la méthode générique insert() pour insérer un ou plusieurs documents.

    // Exemple d'utilisation de insert() pour un ou plusieurs documents
    db.ma_collection.insert({ "nom": "Alice", "age": 22, "ville": "Wonderland" });
    db.ma_collection.insert([{ "nom": "Charlie", "age": 35, "ville": "Charlottesville" }]);

Bonnes Pratiques et Considérations

  1. Identifiants Uniques : Assurez-vous que les documents ont des identifiants uniques (généralement stockés dans le champ _id), soit automatiquement générés par MongoDB, soit fournis de manière explicite.

  2. Validation des Données : Si la structure des documents doit suivre des règles spécifiques, considérez l’utilisation de la validation des schémas pour garantir la conformité des données.

  3. Utilisation de writeConcern : Pour des opérations d’écriture sécurisées, spécifiez un niveau de garantie avec writeConcern pour confirmer le succès de l’opération.

    // Exemple avec writeConcern
    db.ma_collection.insertOne({ "nom": "Eva", "age": 28, "ville": "Evaville" }, { writeConcern: { w: "majority" } });
  4. Batch Inserts : Lors de l’insertion de multiples documents, utilisez insertMany() pour réduire le nombre d’opérations et améliorer les performances.

    // Exemple avec insertMany() pour plusieurs documents
    db.ma_collection.insertMany([
      { "nom": "Frank", "age": 40, "ville": "Frankfurt" },
      { "nom": "Grace", "age": 32, "ville": "Graceville" }
    ]);