Mongo DB / Administración

Mongo Db Logo
Mongo Db Logo

Importar de Json a MongoDB

sudo ./mongoimport –db actitvitat1 –collection people < ../data/db/persons.json

Crear sentencias Mongo

  1. Ens connectem al servidor mongo a la base de dades activitat1
    sudo ./mongo localhost/activitat1
  2. Mostrem tot el contingut de la col·lecció people
    db.people.find()
  3. Mostrem tot el contingut de la col·lecció people d’una manera més llegible.
    db.people.find().toArray()
  4. Mostrem les persones de 34 anys d’una manera llegible
    db.people.find({age:34}).toArray()
  5. Mostrem les persones de 34 anys i que siguin actius.
    db.people.find({age:34,isActive:true}).toArray()
  6. 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()
  7. 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()
  8. Mostra una persona que compleixi els requeriments anteriors.
    db.people.find({age:34,isActive:true},{name:1,age:1,_id:0}).limit(1)
  9. Mostrem el nom i la edat de les persones que tenen més de 30 anys
    db.people.find({age:{$gte:30}}).toArray()
  10. 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()
  11. 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()
  12. 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()
  13. 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()
  14. 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()
  15. 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()
  16. 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()
  17. 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()
  18. 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}]})
  19. 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}]})
  20. Volem trobar totes les persones que continguin en tags els valors laborum i sunt.
    db.people.find({$and:[{tags:»laborum»},{tags:»sunt»}]}).toArray()
  21. Volem trobar totes les persones que continguin en tags alguns dels valors laborum, sunt, nisi
    db.people.find({tags:{$all:[«laborum»,»sunt»,»nisi»]}}).toArray()
  22. Volem trobar totes les persones que NO continguin a l’array tags alguns dels valors especificats: laborum, sunt i, nisi
  23. Retornar tots els documents on l’array tags té una mida de 3 elements
  1. 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

  1. db.people.find({«friends.2.name»:{$gte:»T»}}).count()
    Cuenta las per
  2. db.people.find({«friends.2.name»:{$gte:»T»}},{_id:0,name:1}).sort({name:1})
  3. db.people.find({«friends.2.name»:{$gte:»T»}},{_id:0,name:1}).sort({name: -1})
  4. db.people.find({«friends.2.name»:{$gte:»T»}},{_id:0,name:1,email:1}).sort({name:1,email:1})
  5. db.people.find({«friends.2.name»:{$gte:»T»}},{name:1}).limit(5)
  6. db.people.find({«friends.2.name»:{$gte:»T»}},{name:1}).skip(5)
  7. var myArray = db.people.find({«friends.2.name»:{$gte:»T»}},{name:1}).toArray()
  8. db.people.find({«friends.2.name»:{$gte:»T»}},{name:1}).skip(10).limit(5)
  9. 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