MongoDB: Bases de Datos y Colecciones
1. ¿Qué es MongoDB?
MongoDB es un sistema de base de datos NoSQL orientado a documentos. Guarda la información en documentos tipo JSON llamados BSON.
| SQL | MongoDB |
|---|---|
| Base de datos | Database |
| Tabla | Collection |
| Fila | Document |
| Columna | Field |
2. Crear una base de datos
En MongoDB las bases de datos se crean automáticamente cuando se insertan datos.
use tienda
Si la base de datos no existe, MongoDB la creará cuando se inserte el primer documento.
3. Ver bases de datos
show dbs
4. Eliminar base de datos
use tienda db.dropDatabase()
5. Qué es una colección
Una colección es un grupo de documentos dentro de una base de datos.
6. Crear una colección
Creación automática
db.usuarios.insertOne({
nombre:"Juan",
edad:30
})
Creación manual
db.createCollection("usuarios")
7. Ver colecciones
show collections
8. Insertar documentos
Insertar uno
db.usuarios.insertOne({
nombre:"Ana",
edad:25
})
Insertar varios
db.usuarios.insertMany([
{nombre:"Pedro",edad:40},
{nombre:"Laura",edad:35}
])
9. Consultar documentos
Buscar todos
db.usuarios.find()
Buscar uno
db.usuarios.findOne()
Filtrar datos
db.usuarios.find({
edad:25
})
10. Operadores de consulta
| Operador | Descripción |
|---|---|
| $gt | Mayor que |
| $lt | Menor que |
| $gte | Mayor o igual |
| $lte | Menor o igual |
| $ne | Diferente |
| $in | En una lista |
11. Actualizar documentos
Actualizar uno
db.usuarios.updateOne(
{nombre:"Ana"},
{$set:{edad:26}}
)
Actualizar varios
db.usuarios.updateMany(
{edad:{$gt:30}},
{$set:{activo:true}}
)
12. Eliminar documentos
db.usuarios.deleteOne({nombre:"Pedro"})
db.usuarios.deleteMany({edad:{$lt:20}})
13. Contar documentos
db.usuarios.countDocuments()
14. Índices
Los índices mejoran el rendimiento de las consultas.
db.usuarios.createIndex({
nombre:1
})
15. Documentos anidados
{
nombre:"Carlos",
direccion:{
ciudad:"Buenos Aires",
pais:"Argentina"
}
}
16. Arrays
{
nombre:"Ana",
hobbies:["leer","programar","viajar"]
}
17. Aggregation
db.ventas.aggregate([
{$match:{estado:"completado"}},
{$group:{_id:"$cliente",total:{$sum:"$monto"}}}
])
18. Tipos de colecciones
- Colecciones normales
- Colecciones capped (tamaño fijo)
- Colecciones time series
19. GridFS
Sistema de MongoDB para almacenar archivos grandes dividiéndolos en partes.
20. Replicación
MongoDB usa replica sets para mantener múltiples copias de los datos.
21. Sharding
Sharding permite distribuir datos en múltiples servidores para escalar horizontalmente.
22. Flujo completo de trabajo
use tienda
db.usuarios.insertOne({...})
db.usuarios.find()
db.usuarios.updateOne(...)
db.usuarios.deleteOne(...)