Introducción
Importar de Json a MongoDB
sudo ./mongoimport –db actitvitat1 –collection people < ../data/db/persons.json
Crear sentencias Mongo
- Ens connectem al servidor mongo a la base de dades activitat1
sudo ./mongo localhost/activitat1 - Mostrem tot el contingut de la col·lecció people
db.people.find() - Mostrem tot el contingut de la col·lecció people d'una manera més llegible.
db.people.find().toArray() - Mostrem les persones de 34 anys d'una manera llegible
db.people.find({age:34}).toArray() - Mostrem les persones de 34 anys i que siguin actius.
db.people.find({age:34,isActive:true}).toArray() - Mostrem el nom, l'edat i si són actius de les persones de 34 anys que siguin actius.
db.people.find({age:34,isActive:true,{name:1,age:1}}).toArray() - Mostrem el nom, l'edat i si són actius de les persones de 34 anys que siguin actius però desactivant el camp _id de la projecció.
db.people.find({age:34,isActive:true},{name:1,age:1,_id:0}).toArray() - Mostra una persona que compleixi els requeriments anteriors.
db.people.find({age:34,isActive:true},{name:1,age:1,_id:0}).limit(1) - Mostrem el nom i la edat de les persones que tenen més de 30 anys
db.people.find({age:{$gte:30}}).toArray() - Mostrem el nom i la edat de les persones que tenen 30 o més anys
db.people.find({age:{$gte:30}},{name:1,age:1,_id:0}).toArray() - Mostrem el nom i la edat de les persones menors de 30 anys
db.people.find({age:{$lt:30}},{name:1,age:1,_id:0}).toArray() - Mostrem el nom i la edat de les persones que no tenen 30 anys
db.people.find({age:{$ne:30}},{name:1,age:1,_id:0}).toArray() - Mostrem el nom i la edat de les persones que tenen 25, 30 o 35 anys
db.people.find({age:{$in:[25,30,35]}},{name:1,age:1,_id:0}).toArray() - Busquem els documents el camp gender sigui "female" i el camp age sigui més gran que 20.
db.people.find({age:{$gte:30},gender:”female”},{name:1,age:1,_id:0}).toArray() - Busquem els documents el camp gender sigui "female" o el camp age sigui més gran que 20
db.people.find({$or:[{age:{$gte:30}},{gender:"female"}]},{name:1,age:1,_id:0}).toArray() - Busquem els documents el camp gender sigui "female" i el camp age sigui més gran que 20 utilitzant l'operador $and.
db.people.find({$and:[{age:{$gte:30}},{gender:"female"}]},{name:1,age:1,_id:0}).toArray() - Busca les persones a people en que la seva edat és més gran que 30, o el gènere és "female" i la seva edat més gran que 50.
db.people.find({$or:[{age:{$gte:30}},{$and:[{gender:"female",age:50}]}]},{name:1,age:1,_id:0}).toArray() - Busquem les persones edat NO sigui més gran que 30 i el camp isActive NO sigui true.
db.peole.find({$and:[{age:{$lt:30}},{isActive:false}]}) - Busca l'element "laborum" a l'array tags, retornant les persones en el que en aquest array existeixi aquest element
db.peole.find({$and:[{age:{$lt:30}},{isActive:false}]}) - Volem trobar totes les persones que continguin en tags els valors laborum i sunt.
db.people.find({$and:[{tags:"laborum"},{tags:"sunt"}]}).toArray() - Volem trobar totes les persones que continguin en tags alguns dels valors laborum, sunt, nisi
db.people.find({tags:{$all:["laborum","sunt","nisi"]}}).toArray() - Volem trobar totes les persones que NO continguin a l'array tags alguns dels valors especificats: laborum, sunt i, nisi
- Retornar tots els documents on l'array tags té una mida de 3 elements
- Volem trobar totes les persones que continguin en tags alguns dels valors laborum, sunt, nisi
db.people.find({tags:{$all:["laborum","sunt","nisi"]}}).toArray()
Leer Sentencias Mongo
- db.people.find({"friends.2.name":{$gte:"T"}}).count()
Cuenta las per - db.people.find({"friends.2.name":{$gte:"T"}},{_id:0,name:1}).sort({name:1})
- db.people.find({"friends.2.name":{$gte:"T"}},{_id:0,name:1}).sort({name: -1})
- db.people.find({"friends.2.name":{$gte:"T"}},{_id:0,name:1,email:1}).sort({name:1,email:1})
- db.people.find({"friends.2.name":{$gte:"T"}},{name:1}).limit(5)
- db.people.find({"friends.2.name":{$gte:"T"}},{name:1}).skip(5)
- var myArray = db.people.find({"friends.2.name":{$gte:"T"}},{name:1}).toArray()
- db.people.find({"friends.2.name":{$gte:"T"}},{name:1}).skip(10).limit(5)
- db.people.find({"friends.2.name":{$gte:"T"}}, {name:1}).sort({name:1}).limit(1)
Backup
Coger todos las bases de datos de mongo
mongo --eval db.getMongo().getDBNames().join('\n') --quiet
Con Usuario mongo --authenticationDatabase MONGO_DB_AUTH --username Mongo_User --password Mongo_Pass --eval db.getMongo().getDBNames().join(\n) --quiet
Ya tenemos en nuestra variable de bash todas las db que tenemos activadas en mongo, vamos a obtener las colecciones
mongo --eval db.getCollectionNames().join('\n') --quiet
Con Usuario mongo --authenticationDatabase MONGO_DB_AUTH --username Mongo_User --password Mongo_Pass --eval db.getCollectionNames().join('\n') --quiet
Backup de la BD entera
mongodump --db NAME_DB --host localhost --out PATH_BACKUP
Con Usuario mongodump --authenticationDatabase $MONGO_AUTH_DB --username $MONGO_USER --password $MONGO_PASS --db NAME --host localhost --out PATH_BACKUP
Backup Colecciones
mongodump --db NAME_DB --collection NAME_COLLECTION --host localhost --archives=NOMBRE_DB.NOMBRE_COLLECTION.HORA.archive
Con Usuario mongodump --authenticationDatabase $MONGO_AUTH_DB --username $MONGO_USER --password $MONGO_PASS db NAME_DB --collection NAME_COLLECTION --host localhost --archives=NOMBRE_DB.NOMBRE_COLLECTION.HORA.archive
Restore Backup
Recuperar un backup de colecciones Entramos dentro del directorio donde tenemos todas las colecciones:
for x in `ls`; do mongorestore --archive=$x --db NAME_DB --port 27017; done