3. Conceptos básicos
Vamos a trabajar con conceptos fundamentales de MongoDB.
Bases de datos y colecciones
En MongoDB, una database contiene múltiples collections, y cada collection contiene múltiples documents.
Para crear o cambiar a una base de datos:
use learn
No importa que la base de datos no exista aún. Se creará automáticamente cuando insertes el primer documento.
Para ver todas las bases de datos:
show dbs
Para ver las colecciones de la base de datos actual:
show collections
Para ver información de la base de datos actual:
db.stats()
Documentos
Los documentos son objetos JSON (técnicamente BSON) que almacenan tus datos. Cada documento debe tener un campo _id único.
Ejemplo de documento:
{
_id: ObjectId("507f1f77bcf86cd799439011"),
name: "Aurora",
age: 25,
email: "aurora@example.com",
hobbies: ["lectura", "programación"],
address: {
city: "Madrid",
country: "España"
}
}
Observa que:
- Los campos pueden ser de diferentes tipos (strings, números, arrays, objetos)
- Puedes tener arrays directamente
- Puedes tener documentos embebidos (objetos dentro de objetos)
- El _id se genera automáticamente si no lo proporcionas
El campo _id
Cada documento debe tener un campo _id único. Si no lo proporcionas, MongoDB genera automáticamente un ObjectId.
Un ObjectId es un identificador de 12 bytes que garantiza unicidad:
ObjectId("507f1f77bcf86cd799439011")
Puedes proporcionar tu propio _id:
db.users.insertOne({
_id: 1,
name: "María"
})
Pero normalmente dejarás que MongoDB lo genere automáticamente.
Consultas básicas
Para trabajar con los datos necesitas conocer estos comandos fundamentales:
countDocuments: cuenta el número de documentos en una colección
// Contar todos los documentos
db.listings.countDocuments()
// Contar con filtro (lo veremos más adelante)
db.listings.countDocuments({ room_type: "Entire home/apt" })
stats: obtiene estadísticas detalladas de una colección
db.listings.stats()
Verás información como:
- Número de documentos (
count) - Tamaño total de los datos (
size) - Tamaño promedio de cada documento (
avgObjSize) - Número de índices
Actividad 1
Ahora que has importado los datos de Airbnb, vamos a explorar su estructura básica:
- Cuenta cuántos listados hay en la colección
listings - Cuenta cuántas reseñas hay en la colección
reviews - Usa
stats()para ver las estadísticas de la colecciónlistings
Pro:
- Compara el número de documentos de
listingsvsreviews. ¿Cuál tiene más documentos? - Usando
stats(), calcula cuántas reseñas hay de media por cada listado (divide el total de reviews entre el total de listings) - ¿Qué colección ocupa más espacio en disco? Usa el campo
sizedestats()para comparar
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.