Base de datos No Relacionales en MongoDB
Enviado por Andres Recalde • 7 de Agosto de 2019 • Examen • 614 Palabras (3 Páginas) • 166 Visitas
La Fundación Reciclando por un Mejor Mundo es una organización sin fines de lucro, que persigue contribuir a alcanzar las metas para el desarrollo sostenible acordado por la mayoría de los países pertenecientes a las Naciones Unidas. En particular, esta organización colabora para conseguir las metas relacionadas con el ambiente.
Su estrategia consiste en reusar aquellos artículos que aún tienen una vida útil, a través de la venta de productos usados. Esto también ayuda a la sostenibilidad de la Fundación que puede utilizar el dinero recaudado para ejecutar otras actividades con las comunidades.
Para llevar un control automatizado de los artículos que se venden se ha desarrollado una base de datos usando el manejador NoSQL MongoDB. Se necesita que contribuyas con esta Fundación a conseguir un mejor planeta administrando la base de datos.
Algunos de los aspectos que debes conocer es que se decidió usar MongoDB ya que no se quiere restringir la cantidad de atributos de los artículos. Por otra parte, ellos requieren de una estructura flexible que permita guardar las características de cualquier producto. Por ejemplo, del producto A desean guardar el nombre, color y precio; pero del producto B necesitan el nombre, color, precio y modelo.
Actualmente, la Fundación cuenta con una base de datos con productos desarrollados por otro voluntario como tú, quien antes de dejar la Fundación la respaldó. El director de TI de la organización necesita urgentemente que recuperes y actualices dicha base de datos con los siguientes productos:
- Mesa
- color: gris
- material: madera
- precio: 100
- Florero
- color: azul
- precio: 10
- creado_por: aaa
- Licuadora
- precio: 50
- marca: negro y blanco
El director de TI quiere además que los artículos estén en una base de datos llamada “usando_mas”, con una colección propia que debes llamar “artículos”.
Una vez actualizada la información, el director requiere de unos listados que presentará al CEO de la Fundación con la finalidad de analizar el progreso de este programa de venta de artículos usados y planificar acciones futuras. A continuación, la información que debe contener cada listado para el CEO:
- Todos los artículos con todos sus atributos
- Todos los artículos con solo nombre y costo del producto.
- Todos los artículos con solo nombre y costo del producto ordenados por costo.
- Todos los productos de color azul.
- Todos los productos con precio menor a 50, ordenados descendentemente por precio.
- Todos los productos que son azules o el precio es mayor que 50.
El director también desea los siguientes listados para el análisis de ventas:
- Cantidad de productos agrupados por color.
- Cantidad de productos agrupados por color con precio menor a 80.
- CREAR LA BASE DE DATOS
>use usando_mas;
- CREAR COLECCIÓN
>db.createCollection(‘articulos’);
- RESTAURAR LA BASE DE DATOS DESDE WINDOWS
>mongorestore --drop -d usando_mas C:\BackupsMongo\usando_mas
- RESTAURAR SOLO LA COLECCIÓN
>mongorestore --db usando_mas --collection articulos C:\BackupsMongo\usando_mas
- INSERTAR LOS DATOS SOLICITADOS
[pic 1]
- TODOS LOS ARTÍCULOS CON TODOS SUS ATRIBUTOS
>db.articulos.find().pretty();
[pic 2]
[pic 3]
- TODOS LOS ARTÍCULOS CON SOLO NOMBRE Y COSTO DEL PRODUCTO
>db.articulos.aggregate([{$project: {nombre:1,precio:1,_id:0} }])
[pic 4]
- TODOS LOS ARTÍCULOS CON SOLO NOMBRE Y COSTO DEL PRODUCTO ORNADOS POR COSTO
>db.articulos.aggregate([{$project:{precio:1,nombre:1,_id:0}},{$sort:{precio:1}} ])
[pic 5]
- TODOS LOS PRODUCTOS CON COLOR AZUL
>db.articulos.aggregate([{ $match: {color:{$regex: /azul/i}}}, {$project:{nombre:1,color:1,_id:0}}])
...