Ce chapitre introduit comment insérer des données de document dans MongoDB en utilisant l'interpréteur mongo.

Insérer un document unique

La méthode db.collection.insertOne() est utilisée pour insérer un seul document dans une collection.

Si le document ne spécifie pas le champ _id, MongoDB générera automatiquement un ObjectId unique pour le champ _id.

Remarque : ObjectId est un générateur d'ID unique intégré dans MongoDB utilisé pour la génération d'ID.

Exemple : Insérer un document dans la collection inventory :

db.inventory.insertOne(
   { item: "toile", qty: 100, tags: ["coton"], size: { h: 28, w: 35.5, uom: "cm" } }
)

Renvoie :

{
	"acknowledged" : true,
	"insertedId" : ObjectId("609bf11dfc901345cafc438a")
}

Si l'insertion réussit, elle renvoie la clé primaire. Le champ insertedId est l'ID unique généré automatiquement par MongoDB. Si la collection inventory n'existe pas, elle est automatiquement créée.

Interroger les données du document inséré :

> db.inventory.find( { item: "toile" } )
{ "_id" : ObjectId("609bf11dfc901345cafc438a"), "item" : "toile", "qty" : 100, "tags" : [ "coton" ], "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" } }

En utilisant la méthode find, saisir la condition de requête pour trouver les données du document où item est "toile".

Insérer plusieurs documents

La méthode db.collection.insertMany() peut insérer plusieurs documents dans une collection.

Exemple : Insérer trois données de document en passant un tableau à la méthode insertMany :

db.inventory.insertMany([
   { item: "journal", qty: 25, tags: ["blanc", "rouge"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "tapis", qty: 85, tags: ["gris"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "tapis de souris", qty: 25, tags: ["gel", "bleu"], size: { h: 19, w: 22.85, uom: "cm" } }
])

Valeur de retour :

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("609bf30ffc901345cafc438b"),
		ObjectId("609bf30ffc901345cafc438c"),
		ObjectId("609bf30ffc901345cafc438d")
	]
}

Renvoie les IDs des trois nouveaux documents insérés.

Comportement d'insertion

Création de collection

Dans MongoDB, il n'est pas nécessaire de créer une collection à l'avance. Lors de l'insertion des données pour la première fois, si la collection n'existe pas, elle est automatiquement créée.

Champ _id

Dans MongoDB, chaque document stocké dans une collection a un champ _id unique agissant comme clé primaire. Si le document inséré omet le champ _id, le pilote MongoDB génère automatiquement un ObjectId pour le champ _id.

Atomicité

Toutes les opérations d'écriture dans MongoDB sont des opérations atomiques au niveau du document unique.