0% encontró este documento útil (0 votos)
125 vistas25 páginas

Taller Mongo DB

Este documento presenta las instrucciones para una práctica sobre MongoDB. Los estudiantes deben implementar una base de datos para una biblioteca online usando MongoDB y completar varias actividades como consultas, actualizaciones, eliminaciones y agregaciones. También deben crear índices para optimizar las búsquedas en la base de datos. El informe final incluirá capturas de pantalla que evidencien el desarrollo de cada actividad.

Cargado por

Santiago Leal
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
125 vistas25 páginas

Taller Mongo DB

Este documento presenta las instrucciones para una práctica sobre MongoDB. Los estudiantes deben implementar una base de datos para una biblioteca online usando MongoDB y completar varias actividades como consultas, actualizaciones, eliminaciones y agregaciones. También deben crear índices para optimizar las búsquedas en la base de datos. El informe final incluirá capturas de pantalla que evidencien el desarrollo de cada actividad.

Cargado por

Santiago Leal
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 25

BASES DE DATOS II PRACTICA II MONGODB (5%)

Docente: Henry Andrés Jiménez Herrera

PRESENTADO POR:
o Santiago Leal Casanova - 2201095.
Yeferson Valencia Vanegas – 2200134
Instrucciones:
• Debe presentar un informe del taller, este informe se debe cargar en formato PDF al
respectivo producto o tarea en Moodle junto con su base de datos exportada en
FORMATO JSON.
• Puede realizar el taller en parejas.
• Entregas tarde, en otro formato o incompletas serán penalizadas y/o no calificadas
conforme a la decisión del docente.
• Cada desarrollo de actividad debe ser justificado y presentado con evidencias como
capturas de pantalla del software MongoDB Compas.
• Cualquier intento de plagio será procesado conforme a la normativa de la universidad.

CASO DE ESTUDIO BIBLIOTECA ONLINE


Enunciado:
Una reconocida biblioteca ha decidido crear su propio sitio web donde
pondrá a disposición elementos de libre acceso o elementos privados,
usted ha sido seleccionado como parte del equipo de desarrollo donde
tendrá la labor de implementar la base de datos que servirá como
elemento de persistencia para el sitio web.

El equipo de desarrollo del cual hace parte ha decidido que la mejor


opción es usar una base de datos NoSQL documental, por lo que
deciden usar MongoDB como base de datos del sitio web, a
continuación, se describe el contexto de los datos:
Los elementos de los cuales dispone la biblioteca son:

• Libros
• Revistas
• Mapas

Todos los elementos tienen en común las siguientes


propiedades:

❖ ID
❖ Título
❖ Descripción
❖ Autor
❖ Copias
❖ Año de publicación.
❖ Versión.
❖ Imagen de presentación.
❖ Acceso (Público, Privado)
❖ RESEÑAS:
o Título reseña
o ID_USUARIO_RESEÑA
o FECHA
o COMENTARIO
o CALIFICACIÓN (1ª5)
Adicionalmente los elementos tienen las siguientes
propiedades particulares:

• LIBROS:
o Categorías Ejemplo: Terror, Suspenso, Comedia.
o Idioma: inglés, español, etc…
o Editorial.
o # Páginas.
• REVISTAS:
o País.
o Edición.
o Idioma: inglés, español, etc…
• MAPAS:
o TIPO DE MAPA:
▪ RELIEVE
▪ CALLES
▪ COMPOSICIÓN
o AREA:
▪ COORDENADA SUPERIOR DERECHA
▪ COORDENADA SUPERIOR IZQUIERDA
▪ COORDENADA INFERIOR DERECHA
▪ COORDENADA INFERIOR IZQUIERDA
▪ COORDENADA CENTRAL
o PUNTOS DE INTERES:
▪ NOMBRE
▪ COORDENADA
▪ COLOR: (HEXADECIMAL)
Actividades
Con la base de datos construida en el TC3 realice las siguientes
operaciones:
1. CONSULTAS: Realice las siguientes consultas:
• Desde consola, realice una consulta que devuelva el número
de elementos que cumplen con un filtro específico.
2. UPDATES: Realice las siguientes operaciones:
• Realice desde consola un UPDATE que se aplique a un solo
documento.
• Realice desde consola un UPDATE que se aplique a varios
documentos.
3. DELETE: Realice las siguientes operaciones:
• Eliminar un documento especifico de la base de datos.
• Eliminar un campo “atributo” de un documento en la base de
datos.
• Eliminar un valor de un atributo que tenga por valor una lista,
por ejemplo, si tiene idiomas y la lista es idiomas: [“español”,
“ingles”] eliminar el valor ingles sin eliminar el atributo o la
lista.
4. AGREGACIÓN: Haciendo uso de agregación, realice las siguientes
operaciones:
• Agrupar un conjunto de elementos por un atributo específico
y contar cuantos pertenecen a cada grupo ordenados de
mayor a menor.
• Obtener el promedio de las calificaciones de un elemento
específico.
• Obtener la calificación mínima que se ha dado a un elemento
específico.
• Obtener la calificación máxima que se ha dado a un elemento
específico.
• Cree otra colección donde inserte la información de tres
usuarios que realizara reseñas en los elementos de la primera
colección y luego con el método $lookup realice una
búsqueda de coincidencias desde la colección de elementos
(libros, mapas, revistas) hacía la colección de usuarios.

5. ÍNDICES: Realice las siguientes operaciones con índices:


• Cree un índice único para el titulo de los elementos de la
colección.
• Cree un índice compuesto para el título y el autor de los
elementos de la colección.
• Cree un índice parcial para la colección que solo tenga en
cuenta los elementos públicos.

Desarrollo:

Consultas:
o Consulta que devuelva el numero de elementos de un filtro específico

Se devolverán el numero de elementos de tipo Libro


UPDATES:
o Update para solo un elemento:
Se cambiará el nombre del libro de Harry Potter y la piedra filosofal a Harry Potter y la roca

❖ Antes:
❖ Operación:

❖ Después:
o Update para varios elementos:

Se cambiará el Tipo de los elementos de Tipo Libro a Libro de texto

❖ Antes:
❖ Operación:
DELETE:
o Borrar un documento:
Se eliminará el documento que posea el titulo de Harry Potter y la roca
o Borrar un campo:

Se eliminará el campo “Ano” del documento con el título “Campus UIS”


o Borrar un atributo contenido en una lista:

Se eliminará una reseña del elemento con título “Condorito”


AGGREGACIONES:
o Ejercicio de agregación 1:

//Agrupar un conjunto de elementos por un atributo específico y contar cuantos pertenecen a


cada grupo ordenados de mayor a menor.
//Agrupar elementos por tipo

// db.elementos.aggregate([

// {$group: {_id: "$Tipo", count: {$sum: 1}}},


// {$sort: {count: -1}}

// ])
o Ejercicio de agregación 2:

// Obtener el promedio de las calificaciones de un elemento específico.


// db.elementos.aggregate([

// //Obetenego el elemento

// {$match: {Titulo: "Drácula"}},

// //Ahora obtengo el atributo Reseñas donde estan las CALIFICACIONES


// {$unwind: "$Reseñas"},
// //Ahora obtengo el atributo Calificacion

// {$unwind: "$Reseñas.CALIFICACION"},
// //Ahora obtengo el atributo Calificacion

// {$group: {_id: "Drácula", promedio: {$avg: "$Reseñas.CALIFICACION"}}}

// ])
o Ejercicio de agregación 3:

//Obtener la calificación mínima que se ha dado a un elemento específico.

// db.elementos.aggregate([
// //Obetenego el elemento

// {$match: {Titulo: "La cenicienta"}},

// //Ahora obtengo el atributo Reseñas donde estan las CALIFICACIONES


// {$unwind: "$Reseñas"},

// //Ahora obtengo el atributo Calificacion

// {$unwind: "$Reseñas.CALIFICACION"},
// //Ahora obtengo el atributo Calificacion

// {$group: {_id: "La cenicienta", Minimo: {$min: "$Reseñas.CALIFICACION"}}}

// ])
o Ejercicio de agregación 4:

//Obtener la calificación máxima que se ha dado a un elemento específico.


// db.elementos.aggregate([

// //Obetenego el elemento

// {$match: {Titulo: "Drácula"}},


// //Ahora obtengo el atributo Reseñas donde estan las CALIFICACIONES

// {$unwind: "$Reseñas"},

// //Ahora obtengo el atributo Calificacion


// {$unwind: "$Reseñas.CALIFICACION"},

// //Ahora obtengo el atributo Calificacion

// {$group: {_id: "Drácula", Minimo: {$max: "$Reseñas.CALIFICACION"}}}


// ])
o Ejercicio de agregación 5:

❖ Primero se agregan los usuarios

// MongoDB Playground

// Use Ctrl+Space inside a snippet or a string literal to trigger completions.

// const database = 'Biblioteca';

// const collection = 'Usuarios';

// The current database to use.

use('Biblioteca');

// // Create a new collection.

// db.createCollection(collection);
db.Usuarios.insertMany([
{

'ID_Usuario': 1,

'nombre': 'Juan',
'apellido': 'Perez',

'edad': '25'},

{
'ID_Usuario': 2,

'nombre': 'Pedro',

'apellido': 'Perez',
'edad': '25'},

'ID_Usuario': 3,

'nombre': 'Maria',
'apellido': 'Perez',

'edad': '25'},

{
'ID_Usuario': 4,

'nombre': 'Juan',

'apellido': 'Suarez',
'edad': '15'},

'ID_Usuario': 5,
'nombre': 'Pedro',

'apellido': 'Suarez',

'edad': '15'},
{

'ID_Usuario': 6,
'nombre': 'Maria',

'apellido': 'Suarez',

'edad': '55'}
])

❖ Ejercicio después de agregar los usuarios:

//Cree otra colección donde inserte la información de tres usuarios que realizara reseñas en los
elementos de la primera colección y luego con el método $lookup realice una búsqueda de
coincidencias desde la colección de elementos (libros, mapas, revistas) hacía la colección de
usuarios.

db.elementos.aggregate({
$lookup: {

from: "Usuarios",

localField: "Reseñas.ID_USUARIO_RESEÑA",
foreignField: "ID_Usuario",

as: "Usuarios Con Reseñas"

}
})
INDICES:
o Crear un índice para los títulos de la colección:
o Crear un índice compuesto para el titulo y el autor:
o Crear un índice parcial para los elementos con acceso público:
o Se van a mostrar todos los índices creados:

También podría gustarte