Skip to content

Commit

Permalink
parcial 1
Browse files Browse the repository at this point in the history
  • Loading branch information
SebastianLopezO committed Oct 1, 2024
1 parent 6fba40c commit e56ff9f
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 0 deletions.
Binary file added Parcial#1/DB Parcial Practica#1.pdf
Binary file not shown.
Binary file added Parcial#1/DB Parcial Practica#2.pdf
Binary file not shown.
47 changes: 47 additions & 0 deletions Parcial#1/DB Parcial Practica.md
Original file line number Diff line number Diff line change
Expand Up @@ -707,4 +707,51 @@ tienda_en_linea>db.productos.updateMany({}, { $set: { "fecha_agregado": ISODate(
modifiedCount: 4,
upsertedCount: 0
}
tienda_en_linea>db.productos.find({ "fecha_agregado": { $gte: ISODate("2023-01-01T00:00:00Z"), $lt: ISODate("2024-01-01T00:00:00Z") } }).pretty();
[
{
_id: ObjectId('66fc04d44ee9f9ba042710bc'),
nombre: 'Televisor',
categoria: 'Electrónica',
precio: 299.99,
stock: 45,
proveedor: { nombre: 'Sony', pais: 'Japón' },
calificaciones: [
{
usuario: 'Usuario3',
puntuacion: 4,
comentario: 'Buen producto'
}
],
fecha_agregado: ISODate('2023-01-15T00:00:00.000Z')
},
{
_id: ObjectId('66fc04e24ee9f9ba042710be'),
nombre: 'Portátil',
categoria: 'Informática',
precio: 1099.99,
stock: 30,
proveedor: { nombre: 'HP', pais: 'Estados Unidos' },
fecha_agregado: ISODate('2023-01-15T00:00:00.000Z')
},
{
_id: ObjectId('66fc04e84ee9f9ba042710bf'),
nombre: 'Smartphone',
categoria: 'Electrónica',
precio: 499.99,
stock: 70,
proveedor: { nombre: 'Samsung', pais: 'Corea del Sur' },
fecha_agregado: ISODate('2023-01-15T00:00:00.000Z')
},
{
_id: ObjectId('66fc04f14ee9f9ba042710c0'),
nombre: 'Aspiradora',
categoria: 'Electrodomésticos',
precio: 199.99,
stock: 80,
proveedor: { nombre: 'LG', pais: 'Corea del Sur' },
fecha_agregado: ISODate('2023-01-15T00:00:00.000Z')
}
]
tienda_en_linea>
```
57 changes: 57 additions & 0 deletions Parcial#1/code.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// Cambiar a la base de datos tienda_en_linea
use tienda_en_linea

// Crear la colección Productos
db.createCollection("Productos")

// Insertar productos
db.productos.insertOne({"nombre": "Televisor", "categoria": "Electrónica", "precio": 299.99, "stock": 50, "proveedor": {"nombre": "Sony", "pais": "Japón"}})
db.productos.insertOne({"nombre": "Cafetera", "categoria": "Electrodomésticos", "precio": 89.99, "stock": 100, "proveedor": {"nombre": "Philips", "pais": "Países Bajos"}})
db.productos.insertOne({"nombre": "Portátil", "categoria": "Informática", "precio": 1099.99, "stock": 30, "proveedor": {"nombre": "HP", "pais": "Estados Unidos"}})
db.productos.insertOne({"nombre": "Smartphone", "categoria": "Electrónica", "precio": 499.99, "stock": 70, "proveedor": {"nombre": "Samsung", "pais": "Corea del Sur"}})
db.productos.insertOne({"nombre": "Aspiradora", "categoria": "Electrodomésticos", "precio": 199.99, "stock": 80, "proveedor": {"nombre": "LG", "pais": "Corea del Sur"}})

// Consultar todos los productos
db.productos.find().pretty()

// Consultar productos con precio mayor a 100
db.productos.find({ "precio": { $gt: 100 } }).pretty()

// Consultar productos de la categoría "Electrónica"
db.productos.find({ "categoria": "Electrónica" }).pretty()

// Consultar productos con stock menor a 50
db.productos.find({ "stock": { $lt: 50 } }).pretty()

// Actualizar el stock de un producto
db.productos.updateOne({ "nombre": "Televisor" }, { $set: { "stock": 45 } })

// Consultar el producto actualizado
db.productos.find({ "nombre": "Televisor" }).pretty()

// Agregar una nueva calificación a un producto
db.productos.updateOne({ "nombre": "Televisor" }, { $push: { "calificaciones": { "usuario": "Usuario3", "puntuacion": 4, "comentario": "Buen producto" } } })

// Consultar el producto con la nueva calificación
db.productos.find({ "nombre": "Televisor" }).pretty()

// Borrar productos de la categoría Electrodomésticos con stock mayor a 90
db.productos.deleteMany({ "categoria": "Electrodomésticos", "stock": { $gt: 90 } })

// Consultar productos de la categoría Electrodomésticos después de la eliminación
db.productos.find({ "categoria": "Electrodomésticos" }).pretty()

// Obtener el producto con la puntuación promedio más alta
db.productos.aggregate([{ $unwind: "$calificaciones" }, { $group: { _id: "$nombre", promedio: { $avg: "$calificaciones.puntuacion" } } }, { $sort: { promedio: -1 } }, { $limit: 1 }])

// Contar productos por categoría
db.productos.aggregate([{ $group: { _id: "$categoria", total: { $sum: 1 } } }])

// Consultar productos agregados en el año 2023 (una vez que se tenga el campo fecha_agregado)
db.productos.find({ "fecha_agregado": { $gte: ISODate("2023-01-01T00:00:00Z"), $lt: ISODate("2024-01-01T00:00:00Z") } }).pretty()

// Agregar fecha_agregado a todos los productos existentes
db.productos.updateMany({}, { $set: { "fecha_agregado": ISODate("2023-01-15T00:00:00Z") } })

// Consultar productos agregados en el año 2023 después de actualizar
db.productos.find({ "fecha_agregado": { $gte: ISODate("2023-01-01T00:00:00Z"), $lt: ISODate("2024-01-01T00:00:00Z") } }).pretty()
Empty file removed Parcial#1/code.mongodb
Empty file.
Binary file added Parcial#1/code.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit e56ff9f

Please sign in to comment.