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 :
-
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" });
-
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" } ]);
-
insert()
: Bien que les méthodesinsertOne()
etinsertMany()
soient plus explicites, vous pouvez également utiliser la méthode génériqueinsert()
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
-
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. -
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.
-
Utilisation de
writeConcern
: Pour des opérations d’écriture sécurisées, spécifiez un niveau de garantie avecwriteConcern
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" } });
-
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" } ]);