Bases de datos nosql

1. Crear Documentos (C - Create)

Para insertar documentos en una base de datos documental, usamos insertOne() para un solo documento y insertMany() para varios documentos.

📌 Ejemplo: Insertar un producto en MongoDB desde la terminal (mongosh)

1use tienda
2db.productos.insertOne({
3  nombre: "Laptop",
4  marca: "Dell",
5  precio: 1200
6})

📌 Insertar varios productos a la vez

1db.productos.insertMany([
2  { nombre: "Celular", marca: "Samsung", precio: 800 },
3  { nombre: "Tablet", marca: "Apple", precio: 1000 }
4])

Resultado:
Los productos se guardan en la colección productos, sin necesidad de una estructura fija.


2. Leer Documentos (R - Read)

Para consultar documentos, usamos find().

📌 Ver todos los documentos en productos:

1db.productos.find()

📌 Filtrar por un campo específico (ejemplo: productos de la marca "Dell")

1db.productos.find({ marca: "Dell" })

📌 Mostrar solo algunos campos (ejemplo: nombre y precio, pero sin _id)

1db.productos.find({}, { nombre: 1, precio: 1, _id: 0 })

Resultado:
Solo se mostrarán los campos seleccionados.


3. Actualizar Documentos (U - Update)

Para modificar documentos usamos updateOne() o updateMany().

📌 Ejemplo: Cambiar el precio de una laptop Dell

1db.productos.updateOne(
2  { nombre: "Laptop", marca: "Dell" }, 
3  { $set: { precio: 1100 } }
4)

📌 Actualizar varios documentos a la vez

1db.productos.updateMany(
2  { marca: "Samsung" }, 
3  { $set: { enStock: true } }
4)

Resultado:
Los documentos que coincidan con el filtro se modificarán.


4. Eliminar Documentos (D - Delete)

Para eliminar documentos usamos deleteOne() o deleteMany().

📌 Ejemplo: Borrar un producto específico

1db.productos.deleteOne({ nombre: "Tablet" })

📌 Eliminar todos los productos de una marca

1db.productos.deleteMany({ marca: "Samsung" })

Resultado:
Los documentos que coincidan con el filtro serán eliminados.


5. CRUD con Node.js

Podemos realizar estas operaciones también desde Node.js usando el driver de MongoDB.

📌 Código para hacer CRUD en Node.js

1const { MongoClient } = require("mongodb");
2
3const url = "mongodb://localhost:27017";
4const client = new MongoClient(url);
5const dbName = "tienda";
6
7async function main() {
8  try {
9    await client.connect();
10    console.log("Conectado a MongoDB");
11
12    const db = client.db(dbName);
13    const productos = db.collection("productos");
14
15    // Crear (Insertar un producto)
16    await productos.insertOne({ nombre: "Smartwatch", marca: "Xiaomi", precio: 150 });
17
18    // Leer (Consultar productos)
19    const lista = await productos.find().toArray();
20    console.log("Productos:", lista);
21
22    // Actualizar (Cambiar el precio de un producto)
23    await productos.updateOne({ nombre: "Smartwatch" }, { $set: { precio: 140 } });
24
25    // Eliminar (Borrar un producto)
26    await productos.deleteOne({ nombre: "Smartwatch" });
27
28  } finally {
29    await client.close();
30  }
31}
32
33main();

Explicación del código:
✔️ Se conecta a MongoDB
✔️ Inserta un producto
✔️ Muestra todos los productos
✔️ Actualiza el precio de un producto
✔️ Lo elimina de la base de datos