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:
- 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} )
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}} }])
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})
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} )