16
1. Instala MongoDB siguiendo las instrucciones vistas en clase de manera que: a. Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición diferente a la de sistema, por ejemplo en D:\datos b. Prueba a arrancar el servicio, tienes que obtener los mensajes: i. El servicio de MongoDB está iniciándose. ii. El servicio de MongoDB se ha iniciado correctamente. c. Prueba a parar el servicio, tienes que obtener los mensajes: i. El servicio de MongoDB está deteniéndose. ii. El servicio de MongoDB se detuvo correctamente. d. Reinicia el equipo, ve a Panel de Control Herramientas Administrativas Servicios i. Comprueba que tienes un servicio llamado MongoDB que se ha arrancado automáticamente al arrancar el equipo e. En la variable de sistema PATH añade la ruta donde está el ejecutable mongo.exe (el cliente de MongoDB), reinicia el sistema. Ahora en un Shell de comandos ejecuta el cliente de MongoDB escribiendo simplemente mongo. f. Escribe help para ver los comandos disponibles y prueba algunos de ellos g. Escribe db y comprueba que obtienes el nombre de la BD actualmente en uso. ¿Cómo se llama?

Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

Embed Size (px)

Citation preview

Page 1: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

1. Instala MongoDB siguiendo las instrucciones vistas en clase de manera que:

a. Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición diferente a la de sistema, por ejemplo en D:\datos

b. Prueba a arrancar el servicio, tienes que obtener los mensajes:

i. El servicio de MongoDB está iniciándose.

ii. El servicio de MongoDB se ha iniciado correctamente.

c. Prueba a parar el servicio, tienes que obtener los mensajes:

i. El servicio de MongoDB está deteniéndose.

ii. El servicio de MongoDB se detuvo correctamente.

d. Reinicia el equipo, ve a Panel de Control Herramientas Administrativas Servicios

i. Comprueba que tienes un servicio llamado MongoDB que se ha arrancado automáticamente al arrancar el equipo

e. En la variable de sistema PATH añade la ruta donde está el ejecutable mongo.exe (el cliente de MongoDB), reinicia el sistema. Ahora en un Shell de comandos ejecuta el cliente de MongoDB escribiendo simplemente mongo.

f. Escribe help para ver los comandos disponibles y prueba algunos de ellos

g. Escribe db y comprueba que obtienes el nombre de la BD actualmente en uso. ¿Cómo se llama?

Page 2: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición
Page 3: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición
Page 4: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición
Page 5: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

2. Crea una BD llamada EjerciciosMongo en MongoDB. Después crea una colección llamada inventario en la BD que acabas de crear.

3. La estructura de los documentos de la colección inventario es:a. Campo articulo: nombre del articulob. Campo detalles: es un documento con los campos

i. modelo:nombre del modeloii. proveedor:nombre del proveedor

c. Campo stock: es un array de los elementos en stock, cada elemento del array es un documento con los campos:

i. talla: nombre de la tallaii. cantidad: número en sctock

d. Campo categoría: nombre de la categoríaPiensa como tiene que ser la estructura de los documentos y después inserta documentos con los siguientes valores:

a. articulo: "ABC1", detalles: modelo: "14Q3" proveedor: "XYZ Company" , stock: talla:”S” cantidad:25 – talla:”M” cantidad:50, categoria:”ropa”

b. articulo: "ABC2", detalles: modelo: "14Q3" proveedor: " M1 Corporation" , stock: talla:”M” cantidad:50, categoria:”ropa”

c. articulo: “MNO2”, detalles: modelo: “14Q3” proveedor: “ABC Company” , stock: talla:”S” cantidad:5 – talla:”M” cantidad:5 – talla:”L” cantidad:1, categoria:”ropa”

d. articulo: “IJK2”, detalles: modelo: “14Q2” proveedor: “M5 Corporation” , stock: talla:”S” cantidad:5 – talla:”L” cantidad:1, categoria:”hogar”

4. Sobre la colección inventario realiza las siguientes consultas:

a. Muestra todos los documentos

db.inventario.find()

b. Muestra los documentos cuya categoría sea ropa

db.inventario.find( { categoria: "ropa" } )

Page 6: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

c. Muestra los documentos cuya categoría sea ropa y modelo “14Q3”

db.inventario.find( { categoria: "ropa", "detalles.modelo": "14Q3"} )

d. Muestra los documentos cuya categoría sea hogar o comida

db.inventario.find( { categoria: { $in: [ 'hogar', 'comida' ] } } )

e. Muestra los documentos cuya cantidad en stock sea mayor que 10 ó menor o igual que

db.inventario.find({$or: [ { 'stock.cantidad': { $gt: 10} }, { 'stock.cantidad': { $lte:4} } ]})

f. Muestra los documentos cuyo proveedor sea M1.Coorporation

db.inventario.find( { "detalles.proveedor": "M1 Corporation"} )

g. Muestra los documentos que tengan en stock talla L

db.inventario.find( { 'stock.talla': 'L' } )

h. Muestra los documentos que tengan en stock al menos un elemento que cumpla talla L y cantidad 1 a la vez

db.inventario.find( { stock:{$elemMatch:{ talla: 'L',cantidad: 1}}})

5. En las consultas del ejercicio 4 realiza los siguientes cambios:a. En la consulta c que solo muestre los campos categoría y detalles, no debe

mostrar el iddb.inventario.find({categoria:"ropa","detalles.modelo": “14Q3" }, {categoria:1, detalles: 1,_id:0} )

b. En la consulta d que sólo muestre la categoría y el iddb.inventario.find( { categoria: { $in: [ 'hogar', 'comida' ] } } ,{categoria:1})

c. En la consulta e que muestre todos los campos excepto el stockdb.inventario.find({$or: [ { 'stock.cantidad': { $gt: 10} }, { 'stock.cantidad': { $lte:4} } ]

},{stock:0})

d. En la consulta g que sólo muestre el primer elemento del stockdb.inventario.find( { 'stock.talla': 'L' },{ stock: { $slice: 1 } } )

6. En las consultas del ejercicio 4 realiza los siguientes cambios:a. En la consulta c que solo muestre los campos categoría y detalles, no debe

mostrar el iddb.inventario.find( { categoria: "ropa", "detalles.modelo": "14Q3"},{categoria:1,detalles:1,_id:0} )

b. En la consulta d que sólo muestre la categoría y el iddb.inventario.find( { categoria: { $in: [ 'hogar', 'comida' ] } } ,{categoria:1})

c. En la consulta e que muestre todos los campos excepto el stockdb.inventario.find({$or: [ { 'stock.cantidad': { $gt: 10} }, { 'stock.cantidad': { $lte:4} } ]

},{stock:0})

Page 7: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

d. En la consulta g que sólo muestre el primer elemento del stockdb.inventario.find( { 'stock.talla': 'L' },{ stock: { $slice: 1 } } )

7. Realiza las siguientes modificaciones sobre los documentos de la colección inventario:a. Para el artículo “MNO2” cambia el modelo a “14Q4” y la categoría a hogar

db.inventario.update( { articulo: "MNO2" }, { $set: { categoria: "hogar",

"detalles.modelo":"14Q3"} })

b. Actualiza todos los artículos cuya categoría es hogar para que sea “casa”

db.inventario.update( { categoria: "hogar" }, { $set: { categoria: "casa" },

}, { multi: true })

c. Para el artículo "IJK2", modifica el stock a talla M y cantidad 7db.inventario.update( { articulo: "IJK2" }, { $set:{ stock:[{talla: "M",cantidad:7}]} }

)

d. Para el artículo "ABC2", añade un campo precio con valor 8.5 multiplica por 3 la cantidad de sus productos en stock de talla M

db.inventario.update( { articulo: "ABC2" }, { $set:{ precio:8.5} })

e. Para el artículo "ABC2” multiplica por 3 el preciodb.inventario.update( { articulo: "ABC2" }, { $mul: { precio: 3 } })

f. Actualiza el campo precio para todos los artículos con categoría “ropa” con valor 5.6. Si no existe el campo se debe crear.

db.inventario.update({ categoria: "ropa" }, { $set: { precio: 6 }, }, { multi: true }

)

g. Cambia el valor del precio a 5 para aquellos artículos de la categoría ropa que tengan precio mayor que 5

db.inventario.update({ categoria: "ropa" }, { $min: { precio: 3 } },{ multi: true })

h. Actualiza la categoría a hogar y los detalles a modelo= "14Q3", proveedor=” "IJK Co." del artículo "TBD2". Si no existe se debe crear un nuevo documento con los datos.

db.inventario.update( { articulo: "TBD2" }, { $set: { detalles: { "modelo" : "14Q3", "proveedor" : "IJK Co." }, categoria: "hogar" } }, { upsert: true })

8. Realiza las siguientes eliminaciones en la colección inventario.a. Borra los documentos de la categoría hogar

db.inventario.remove( { categoria : "hogar" } )

b. Borra los documentos con precio mayor que 1

Page 8: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

db.inventario.remove({ precio: { $gt: 1} })

EJERCICICOS 2

1. Escribe las siguientes consultas sobre el grafo de empleados de la actividad de la transparencia 82

a. Nombre, departamento y salario de empleados ordenado por nombre ascendente

b. Nombre, departamento y salario de empleados ordenado por nombre descendente

c. Nombre de todos los empleados en mayúsculas

d. Nombre de todos los empleados en minúsculas

e. Las dos primeras letras del nombre de cada empleado

f. Número total de empleados

g. Salarios máximo y mínimo de los empleados

h. Promedio del salario de los empleados y total de dinero que se gasta en salarios.

i. Borra todos los nodos empleado

2. Ejercicio Guiado:a. Vamos a crear el siguiente grafo en Neo4J

Page 9: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

b. Para ello escribimos en el cliente web de Neo4J las siguientes sentencias CYPHER:

c. Explora las vistas de grafo y de registros de datos y asegúrate de entenderlas.

d. Vamos a realizar las siguientes consultas sobre el grafo en el cliente de Neo4J:i. Total de nodos en el grafo

ii.

Buscamos una película por título

iii. Devolvemos el título y año de una película

iv. Mostramos todos los actores

v. Nombres de los actores ordenados por nombre

vi. Contamos el total de actores

vii. Mostramos el nombre de los actores que termina en “s”. Observa cómo podemos realizar búsquedas con expresiones regulares al estilo GNU/Linux.

Page 10: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

viii. Contamos las relaciones y mostramos su tipo

3. Escribe las siguientes consultas CYPHER sobre el ejercicio del grafo anterior:a. Nodos actor que actúen en alguna película

b. Nodos película en los que actúen algún actor

c. Identificador y tipo de todas las relaciones del grafo

d. Muestra únicamente el id del Nodo Keanu Reeves

e. Cambia la propiedad name de Keanu Reeves para que sea sólo Keanu, y añade una propiedad nueva surname para que sea Reeves busca el nodo por id

f. Borra la relación ACTS_IN entre Laurence y The Matrix Reloaded

g. Muestra los nombres de actores, sus roles de las relaciones ACTS_IN y los títulos de las películas

h. Nodos de actores que hayan participado en la película Matrix o en la película Matrix Revolutions. Resuélvelo con 2 operadores diferentes.

i. Nodos de actores y fechas de películas que hayan participado en alguna película del 2003

Page 11: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

j. Ejecuta la siguiente sentencia. ¿Qué hace?MATCH (actor:Actor)

WHERE actor.name =~ ".*s$"

RETURN actor.name;

Son todos los actores cuyo nombre termina en ese comodin como Keanu Reeves y 'Carrie-Anne Moss'

4. Dado el siguiente grafo datos:

a. Escribe todas las sentencias CYPHER necesarias para crearlo

b. Ahora añade todos estos datos al grafo:

Page 12: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

c. Explora las vistas de grafo y de registros de datos y asegúrate de entenderlas.

d. Escribe sentencias CYPHER para responder a las siguientes consultas:i. Muestra los personajes realizados por Jason Segel

ii. ¿Cuántos personajes ha realizado Josh Radnor?

iii. ¿Cuántas revisiones se hicieron al episodio Piloto de la temporada 1?

iv. Muestra los nombres de usuarios que escribieron revisiones, título de la revisión y episodio de la revisión.

v. Para el show “How I met your mother” muestra los nombres de estaciones y nombres de episodios de cada estación

Page 13: Web viewInstala MongoDB siguiendo las instrucciones vistas en clase de manera que: Los ficheros de log y datos se generen en un directorio llamado datos pero en un partición

vi. Lista los nombres de los personajes distintos “featured_character” del show “How I met your mother”

vii. Lista los nombres de los actores que realizan un personaje en el show “How I met your mother”

viii. Ejecuta la siguiente sentencia e intenta entender lo que hace

Se muestran todos los episodios de las serie y sus revisiones, como hay algunos que no tienen revisiones no se muestran

ix. Busca los episodios en los que Josh Radnor ha realizado algún personaje y muestra el nombre del episodio y del personaje

x. Modifica la consulta anterior para mostrar también la estación y el episodio