Supponiamo che il database relazionale sia costituito dalle seguenti tabelle con i relativi attributi e relazione.
Schema relazionale del database SANREMO Cantanti (nome, info) Canzoni (titolo, edizione, posto, nomecantante) |
Supponiamo inoltre che la tabella Cantanti contenga le seguenti informazioni:
nome | info |
Domenico Modugno | cantautore, chitarrista, attore, regista e politico italiano |
Loredana Bertè | cantautrice e attrice italiana, sorella minore di Mia Martini |
e la tabella Canzoni
titolo | edizione | posto | nomecantante |
Nel blu dipinto di blu | 9 | 1 | Domenico Modugno |
Piove | 10 | 1 | Domenico Modugno |
Addio… addio | 13 | 1 | Domenico Modugno |
Cosa ti aspetti da me | 69 | 4 | Loredana Bertè |
Re | 37 | 9 | Loredana Bertè |
Io | 39 | 16 | Loredana Bertè |
In questa città | 42 | 16 | Loredana Bertè |
Amici non ne ho | 45 | 13 | Loredana Bertè |
Al prompt digiteremo: use sanremo
Volendo inserire le canzoni di Domenico Modugno si digiterà il seguente comando:
db.cantanti.insert
(
{
nome:”Domenico Modugno”,
info:”cantautore, chitarrista, attore, regista e politico italiano”,
canzoni:
[
{titolo:”Nel blu dipinto di blu”, edizione:”9″, posto:”1″},
{titolo:”Piove”, edizione:”10″, posto:”1″},
{titolo:”Addio … addio”, edizione:”13″, posto:”1″}
]
}
)
Questa operazione di includere le canzoni all’interno del cantante si chiama embedding e rappresenta una vera e propria join detta anche pre-join.
Mentre il linguaggio con cui scriviamo le istruzioni è chiamato JSON (Java Script Object Notation).
Per visualizzare il dato inserito si scriverà il seguente comando:
db.cantanti.find()
il cui effetto è la seguente schermata
Come si può notare alla collection cantanti è stato aggiunto in automatico id. Se vogliamo una scrittura più leggibile si utilizza il comando: db.cantanti.find().pretty()
Supponiamo di voler aggiungere la data di nascita al cantante Domenico Modugno, utilizzando JSON si utilizza una variabile
var cantante=db.cantanti.findOne({nome:”Domenico Modugno”})
seguito dai seguenti comandi
cantante.datanascita=”09/01/1928″
db.cantanti.save(cantante)
Ridigitando il comando:db.cantanti.find().pretty()