Questo capitolo illustra come inserire dati di documenti in MongoDB usando la shell mongo.

Inserimento di un singolo documento

Il metodo db.collection.insertOne() viene utilizzato per inserire un singolo documento in una collezione.

Se il documento non specifica il campo _id, MongoDB genererà automaticamente un ObjectId univoco per il campo _id.

Nota: ObjectId è un generatore di ID univoci integrato in MongoDB utilizzato per la generazione degli ID.

Esempio: Inserire un documento nella collezione inventory:

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

Restituisce:

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

Se l'inserimento ha successo, restituisce la chiave primaria. Il campo insertedId è l'ID univoco generato automaticamente da MongoDB. Se la collezione inventory non esiste, viene creata automaticamente.

Interrogare i dati del documento inserito:

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

Utilizzando il metodo find, inserire la condizione di query per trovare i dati del documento in cui item è "tela".

Inserimento di documenti multipli

Il metodo db.collection.insertMany() può inserire più documenti in una collezione.

Esempio: Inserire tre dati del documento passando un array al metodo insertMany:

db.inventory.insertMany([
   { item: "diario", qty: 25, tags: ["vuoto", "rosso"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "tappetino", qty: 85, tags: ["grigio"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "tappetino per mouse", qty: 25, tags: ["gel", "blu"], size: { h: 19, w: 22.85, uom: "cm" } }
])

Valore restituito:

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

Restituisce gli ID dei tre documenti appena inseriti.

Comportamento dell'inserimento

Creazione della collezione

In MongoDB, non è necessario creare una collezione in anticipo. Quando si inseriscono dati per la prima volta, se la collezione non esiste, viene creata automaticamente.

Campo _id

In MongoDB, ogni documento memorizzato in una collezione ha un campo _id univoco che funge da chiave primaria. Se il documento inserito omette il campo _id, il driver di MongoDB genera automaticamente un ObjectId per il campo _id.

Atomicità

Tutte le operazioni di scrittura in MongoDB sono operazioni atomiche a livello di singolo documento.