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.