sábado, 20 de mayo de 2017

Servidor MongoDB y datos de prueba



Instalacion MongoDB
Crear el directorio de datos, p.e. c:\mongodb
Instalar el servidor de mongo
Instalar robomongo
Buscar el servidor mongod, generalmente en C:\Program Files\MongoDB\Server\3.4\bin
Ejecutar mongod –dbpath “%rutaDeDatos%”.
mongod --dbpath "c:\mongodb"
Si todo esta bien el servidor se queda esperando conexiones en el puerto 27017

-----Ejecutar robomongo y crear una nueva conexión en localhost:27017
En New Connection, botón derecho y Create Database. Nombrar la base de datos, p.e. librería
Abrir el fichero .js correspondiente desde la pestaña de la imagen y ejecutar con el botón execute de la interfaz

Ficheros de prueba: Servidor Mega


Prácticas de Bases de Datos Avanzadas MongoDB
Se pide resolver sobre la base de datos de libros las siguientes consultas en MongoDB:
  1. Obtener todos los autores
db.libros.find({},{'autor':1, _id:0})

db.libros.find( {
},
{‘autor:1, _id:0}
)

2.                  Obtener los autores cuyo apellido sea DATE
db.libros.find({'autor.apellidos':'DATE'},{'autor':1, '_id':0})

3. Obtener los libros editados en 1998 o en 2005
db.libros.find( {$or:[{"año": "1998", "año":"2007"}]}, {"autor":1, "_id":0} )

4.                  Obtener el número de libros de la editorial Addison‐Wesley
db.libros.find( {"editorial": "Addison-Wesley"}, {"autor":1, "_id":0} ).count()

5.                  Obtener el libro que ocupa la tercera posición
db.libros.find( {}, {"autor":1, "_id":0} ).skip(2).limit(1)

6.                  Obtener la lista de autores de cada libro junto con el título
db.libros.find( {}, {"autor":1, "titulo":1, "_id":0} ).pretty()

7.                  Obtener los títulos de libro publicados con posterioridad a 2004.
db.libros.find( {$or:[{"año":{$gt:"2005"}}, {"año":"2004"}]}, {"autor":1, "_id":0, "año":"1"} )

8. Obtener los libros editados en 1998 o en 2005
db.libros.find( {$or:[{"año":"2005"}, {"año":"1998"}]}, {"autor":1, "_id":0, "año":"1"} )

8.                  Obtener los libros editados desde 2001 y precio mayor que 50
db.libros.find({"año":{$gte:"2001"}, "precio":{$gte:50.00}}, {"autor":1, "_id":0, "año":"1", "precio":1} )

9.                  Obtener los libros publicados por la editorial Addison‐Wesley después de 2005.

db.libros.find({"editorial":"Addison-Wesley", "año":{$gte:"1995"}}, {"autor":1, "_id":0, "año":"1", "precio":1} )

11. Obtener el título de libro y editorial para aquellos libros que tengan un precio superior a
50€.
db.libros.find({"precio":{$gte:50}}, {"titulo":1, "editorial": 1, "precio":1} )
 
12. Obtener por cada libro, su título y el número de ediciones publicadas.
 db.libros.aggregate([{$group:{_id:"$titulo", numeroEdiciones:{$sum:1}}   }])
13. 13. Obtener los títulos de libro de los que conste más de una edición.
14. Realizar algunas de las operaciones anteriores ordenando el resultado por algún criterio.
15. Realizar, al menos, una operación de actualización.
16.- Obtener los libros publicados en 1998 o a partir de 2005.
db.libros.find( {$or:[{"año":{$gt:"2005"}}, {"año":"1998"}]} ,{"titulo":1, "año":1})

db.libros.find( {"año":{$gt:"1998"}}, {"autor":1, "_id":0} )

No hay comentarios:

Publicar un comentario