4. Operaciones CRUD

CRUD son las operaciones básicas: Create, Read, Update, Delete.

Create: Insertar documentos

Para insertar un solo documento usa insertOne:

db.users.insertOne({
    name: "Ana",
    age: 28,
    city: "Barcelona"
})

MongoDB devolverá el _id generado.

Para insertar múltiples documentos usa insertMany:

db.users.insertMany([
    { name: "Carlos", age: 35, city: "Madrid" },
    { name: "Laura", age: 42, city: "Valencia" },
    { name: "Pedro", age: 29, city: "Sevilla" }
])

Si la colección no existe, se creará automáticamente al insertar el primer documento.

Read: Consultar documentos

Para obtener todos los documentos de una colección:

db.users.find()

Esto devuelve los primeros 20 documentos. Para ver más, escribe it (iterate).

Para obtener solo un documento:

db.users.findOne()

Para buscar documentos específicos, usa un filtro:

db.users.find({ city: "Madrid" })

Para seleccionar qué campos devolver (proyección):

// Solo devuelve name y age (y _id por defecto)
db.users.find({}, { name: 1, age: 1 })

// Excluye el campo _id
db.users.find({}, { name: 1, age: 1, _id: 0 })

Update: Actualizar documentos

Para actualizar un solo documento usa updateOne:

db.users.updateOne(
    { name: "Ana" },
    { $set: { age: 29 } }
)

Importante: siempre usa operadores como $set. Si no lo haces, reemplazarás todo el documento.

Para actualizar múltiples documentos usa updateMany:

db.users.updateMany(
    { city: "Madrid" },
    { $set: { country: "España" } }
)

Para reemplazar completamente un documento usa replaceOne:

db.users.replaceOne(
    { name: "Carlos" },
    { name: "Carlos", age: 36, city: "Bilbao", active: true }
)

Delete: Eliminar documentos

Para eliminar un solo documento usa deleteOne:

db.users.deleteOne({ name: "Pedro" })

Para eliminar múltiples documentos usa deleteMany:

db.users.deleteMany({ age: { $lt: 18 } })

¡Cuidado! Si ejecutas db.users.deleteMany({}) sin filtro, borrarás toda la colección.

Práctica

Vamos a practicar con datos de unicornios. Crea una colección y añade datos:

use learn

db.unicorns.insertMany([
    { name: 'Aurora', gender: 'f', weight: 450, loves: ['carrot', 'grape'], vampires: 43 },
    { name: 'Horny', gender: 'm', weight: 600, loves: ['carrot', 'papaya'], vampires: 63 },
    { name: 'Unicrom', gender: 'm', weight: 984, loves: ['energon', 'redbull'], vampires: 182 }
])

Ahora prueba:

// Ver todos los unicornios
db.unicorns.find()

// Buscar unicornios femeninos
db.unicorns.find({ gender: 'f' })

// Buscar unicornios que pesan más de 500
db.unicorns.find({ weight: { $gt: 500 } })

// Actualizar el peso de Aurora
db.unicorns.updateOne(
    { name: 'Aurora' },
    { $set: { weight: 460 } }
)

// Añadir un nuevo amor a Horny
db.unicorns.updateOne(
    { name: 'Horny' },
    { $push: { loves: 'apple' } }
)

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Desafíos de programación atemporales y multiparadigmáticos

Desafíos de programación atemporales y multiparadigmáticos

Te encuentras ante un librillo de actividades, divididas en 2 niveles de dificultad. Te enfrentarás a los casos más comunes que te puedes encontrar en pruebas técnicas o aprender conceptos elementales de programación.

Buy the book

Will you buy me a coffee?

Comments

There are no comments yet.

Visitors in real time

You are alone: 🐱