6. Insertar documentos
Hasta ahora solo has consultado los datos importados. Es hora de aprender a crear tus propios documentos.
Insertar un documento
Para insertar un solo documento usa insertOne:
db.listings.insertOne({
name: "Mi apartamento en Barcelona",
neighbourhood_group_cleansed: "EIXAMPLE",
room_type: "Entire home/apt",
accommodates: 4,
price: "$75.00"
})
MongoDB devuelve un objeto con el _id generado automáticamente:
{
acknowledged: true,
insertedId: ObjectId("507f1f77bcf86cd799439011")
}
Insertar múltiples documentos
Para insertar varios documentos a la vez usa insertMany:
db.listings.insertMany([
{
name: "Habitación privada en Gràcia",
neighbourhood_group_cleansed: "EXTRAMURS",
room_type: "Private room",
accommodates: 2,
price: "$40.00"
},
{
name: "Estudio en Ciutat Vella",
neighbourhood_group_cleansed: "CIUTAT VELLA",
room_type: "Entire home/apt",
accommodates: 2,
price: "$65.00"
}
])
MongoDB devuelve los IDs de todos los documentos insertados.
Colecciones automáticas
Si la colección no existe, se creará automáticamente al insertar el primer documento:
// Esta colección no existe aún
db.mis_propiedades.insertOne({ name: "Mi primera propiedad" })
// Ahora existe
El campo _id
Cada documento debe tener un _id único. Si no lo proporcionas, MongoDB genera automáticamente un ObjectId:
// MongoDB genera el _id automáticamente
db.listings.insertOne({ name: "Casa de playa" })
// Puedes proporcionar tu propio _id
db.listings.insertOne({
_id: "mi-id-personalizado",
name: "Apartamento centro"
})
Importante: El _id debe ser único. Si intentas insertar un documento con un _id que ya existe, la operación fallará.
Validación de datos
MongoDB no valida automáticamente tus datos. Puedes insertar documentos con diferentes estructuras en la misma colección:
// Todos válidos en la misma colección
db.pruebas.insertMany([
{ name: "Ana", age: 28 },
{ name: "Carlos", city: "Madrid" }, // Sin campo age
{ email: "laura@example.com" } // Sin campos name ni age
])
Esto es flexible, pero debes tener cuidado con la consistencia de tus datos.
Actividad 1
Practica insertando nuevos listados en la base de datos de Airbnb:
- Inserta un nuevo listado con los campos:
name,neighbourhood_group_cleansed,room_type,accommodatesyprice - Inserta tres listados a la vez usando
insertMany - Inserta un listado proporcionando tu propio
_id(por ejemplo, "mi-listado-1") - Crea una nueva colección llamada
mis_favoritosinsertando un documento con los campos que quieras - Verifica que tus documentos se insertaron correctamente buscándolos con
find()
Pro:
- Inserta un listado con un campo adicional que no existe en los demás (por ejemplo,
destacado: true) - Intenta insertar dos documentos con el mismo
_id. ¿Qué error obtienes? - Inserta 5 reseñas en la colección
reviewspara uno de tus listados (recuerda incluirlisting_id,dateyreviewer_id)
This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.
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
Support me on Ko-fi
Comments
There are no comments yet.