Taller Mongo DB
Taller Mongo DB
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.
• Libros
• Revistas
• Mapas
❖ 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.
Desarrollo:
Consultas:
o Consulta que devuelva el numero de elementos de un filtro específico
❖ Antes:
❖ Operación:
❖ Después:
o Update para varios elementos:
❖ 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:
// db.elementos.aggregate([
// ])
o Ejercicio de agregación 2:
// //Obetenego el elemento
// {$unwind: "$Reseñas.CALIFICACION"},
// //Ahora obtengo el atributo Calificacion
// ])
o Ejercicio de agregación 3:
// db.elementos.aggregate([
// //Obetenego el elemento
// {$unwind: "$Reseñas.CALIFICACION"},
// //Ahora obtengo el atributo Calificacion
// ])
o Ejercicio de agregación 4:
// //Obetenego el elemento
// {$unwind: "$Reseñas"},
// MongoDB Playground
use('Biblioteca');
// 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'}
])
//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",
}
})
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: