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 colore
JSON
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 Roma
Remove e Drop
db.rubrica2.remove({nome:"Pino10"}) // cancella uno alla volta i documenti db.rubrica2.drop() // cancella tutta lo collection