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' } }
)
Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.
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.
Comprar el libro
Comentarios
Todavía no hay ningún comentario.