Capitolo 2

Insert: Aggiungere Documenti


Capitolo 2: CRUD


Presentazione CRUD e Operatori
Insert: Aggiungere Documenti
Find e FindOne: Cercare i Documenti
Operatori $GT e $LT: Maggiore di e Minore di
Operatori $EXISTS, $TYPE e $REGEX
Combinare le Query con $AND e $OR
La Ricerca e gli Array
Operatori $ALL, $IN e $NIN
La Ricerca e i Sotto-Documenti
Limit, Sort, Skip e Count
Update: i Primi Due Approcci
Update e gli Array
Update: Upsert e Multi-Update
Remove e Drop: Eliminare i Documenti

Insert: Aggiungere Documenti

Ecco come inserire nuovi documenti su MongoDB con il metodo insert.

Lezione su Insert

L’insert, come nei database relazionali, è usata per l’inserimento di un nuovo dato, nel nostro caso l’inserimento di un documento JSON. Vediamo di fare qualche prova e di prendere confidenza con la shell.


Creiamo un documento in javascript:

var doc = { name:”Alberto”, surname:”Olla”, city:”Cagliari” }

> doc

il comando

> db

ci mostra il database in cui siamo. Abbiamo detto che i documenti vivono all’interno delle collection situate in un particolare database.

Per inserire il documento nel database possiamo scrivere:

db.users.insert( doc )

vedete come collection sia una proprietà del database, mentre insert è un metodo della collection che riceve come argomento un oggetto javascript come il nostro doc.


db.users.find()

ci mostra tutti i documenti della collezione perchè, come potete vedere, è stata richiamata senza parametri. Nel nostro specifico caso verrà restituito un solo documento perchè non ne sono stati inseriti altri.


Possiamo notare che Mongo ha aggiunto un nuovo attributo _id di tipo ObjectID. Questo è un attributo obbligatorio che tutti i documenti devono avere e serve per identificare il documento, una sorta di chiave primaria.

La cosa più importante di _id è che è unico ed immutabile, unico perchè non possono esistere due documenti nella stessa collection con la stessa chiave e immutabile perchè non può mai essere modificata, ovviamente si può simulare la modifica eliminando il documento e ricreandolo impostando un diverso _id.

L’ObjectID viene generato automaticamente unendo tra loro alcuni dati, tra cui il tempo, l’identificativo della macchina, il processID che sta gestendo l’operazione, un contatore dei processi e altri dati simili, con l’obiettivo di creare in tempi rapidissimi un _id che abbia il maggior numero di probabilità di essere unico.

In questo modo possiamo inserire documenti senza specificare l’_id, senza nessun pericolo di collisioni.

Possiamo anche specificare noi l’id durante l’inserimento, usando stringhe o numeri, basti che sia unico per ogni documento della collection.