installazione https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
mongod --dbpath /home/simon/mongofile --port 9999 // avvia il server in locale (nel caso spegni il demone) mongo --port 9999 // avvia il client per il demone abbiamo: sudo service mongod start sudo service mongod stop sudo tail -f /var/log/mongodb/mongod.log
db // attuale db in uso
show dbs // elenco db
show collections // elenco collection
use demo // cambio db
db.animals.find()
db.animals.insert({name:"delfino",color:"grigio",oceans:["atlatico","pacifico","indiano"]})
db.animals.insert({name:"pantera",color:"nero",zoos:[{name:"Zoo di Berlino",indirizzo:{via:"terrarracina ",civico:"23"}}]})
db.animals.find({name:"pantera"}).pretty()
var pantera = db.animals.findOne({name:"pantera"})
pantera.zampe=4
db.animals.save(pantera)
db.animals.save pesenta il codice javascript
help presenta tutte le funzioni
db.animals.findOne() un documento a caso
db.animals.findOne({name:"delfino"})
db.animals.findOne({name:"delfino"},color:true ) visualizza solo il coloreJSON
BSON
No Schema
Schema dinamico
$LT, $GT
db.score.insert({punteggio:10, nome:"Pino1"})
db.score.insert({punteggio:20, nome:"Pino2"})
db.score.insert({punteggio:50, nome:"Pino3"})
db.score.insert({punteggio:150, nome:"Pino4"})
db.score.find({punteggio:{$gt:20,$lt:150}}) // query con intervallo per avere gli estri $gte,$lte$EXISTS, $TYPE e $REGEX
db.score.insert({punteggio:150, nome:"Pino4",cognome:"Giova"})
db.score.find({cognome:{$exists : true}}) // nella collection solo i documenti con il campo cognome presente$OR,$AND
db.score.find({$or:[{nome:{$regex:"Pino1"}},{nome:{$regex:"Pino3"}}]})
db.score.find({$and:[{punteggio:{$lte:50}},{punteggio:{$gte:20}}]})$ALL, $IN e $NIN
db.articolo.insert({titolo:"titolo1", tags:["sport", "finanza"]})
db.articolo.insert({titolo:"titolo2", tags:["sport", "ciclismo"]})
db.articolo.insert({titolo:"titolo2", tags:["cultura", "libri"]})
db.articolo.find({ tags:{$in:["cultura", "libri"]}})La Ricerca e i Sotto-Documenti
db.rubrica.insert({nome:"Simon", telefono:{cellulare:"334123123", cas:"06/2223344" }})
{
"_id" : ObjectId("5d42eb90f0c182509ced30c4"),
"nome" : "Simon",
"telefono" : {
"cellulare" : "334123123",
"cas" : "06/2223344"
}
}
db.rubrica.find({"telefono.cellulare":"334123123"})Limit, Sort (-1 descescente ,1 crescente), Skip e Count
db.score.find().sort({punteggio: -1}).limit(2)Cursore
var cursore = db.score.find(); null; while(cursore.hasNext()) printjson( cursore.next());
Update 1: sostituzione completa!
db.rubrica2.insert({ nome:"Pino1", cognome:"Cognome1"})
db.rubrica2.insert({ nome:"Pino2", cognome:"Cognome2"})
db.rubrica2.insert({ nome:"Pino3", cognome:"Cognome3"})
db.rubrica2.insert({ nome:"Pino4", cognome:"Cognome4"})
db.rubrica2.update({ condizione di selezione},{ cosa integralmente sostituisco})
db.rubrica2.update({nome:"Pino1"},{nome:"Pino123", cognome:"Cognome123"})
db.rubrica2.find({nome:"Pino123"})Update 2: $set (se non presente lo inserisce) $unset per cancellare un campo
db.rubrica2.update({nome:"Pino2"},{ $set:{ cognome:"Cognome321"} })
db.rubrica2.find({nome:"Pino2"})
db.rubrica2.update({nome:"Pino2"},{ $unset:{ cognome: true} })
db.rubrica2.find({nome:"Pino2"})Update 3: Upsert (se il documente non è presente lo inserisce)
db.rubrica2.find({nome:"Pino10"}) // non presente
db.rubrica2.update({nome:"Pino10"},{ $set:{ cognome:"Cognome10"} } , {upsert:true} )
db.rubrica2.find({nome:"Pino10"})Update 4: Multi-Update
db.rubrica2.update({nome:{$exists:true}},{ $set:{ citta:"Roma"} } , {multi:true} ) // aggiunge a tutti i documenti col campo nome il campo citta con valore RomaRemove e Drop
db.rubrica2.remove({nome:"Pino10"}) // cancella uno alla volta i documenti
db.rubrica2.drop() // cancella tutta lo collection