- Tener instalado Docker
- En caso de no tener instalado Docker, tener instalado MongoDB
- Revisar los conceptos básicos:
Referencias:
- Documentos
- Colecciones
Documentos y colecciones en español
Referencias
Comandos
-
Levantar instancia de MongoDB
docker run --name mongodb -d mongo
-
Conectarse a MongoDB
docker exec -it mongodb mongosh
-
Mostrar bases de datos
show dbs
-
Crear / Usar base de datos
use wizeline_baz_db
-
Mostrar base de datos en uso
db
-
Insertar documentos
-
Insertar un documento
db.proyecto.insertOne({"nombre":"workshop"})
-
Insertar multiples documentos
db.proyectos.insertMany([ { nombre: "Proyecto multiple", responsables: ["CTO", "TL"], tipo: "multiple" }, { nombre: "Proyecto cancelado" }])
-
-
Datos de ejemplo
Sakila es un esquema de ejemplo de MySQL que se publicó hace algunos años. Se basa en un sistema de alquiler de DVD. En este repositorio se agregaron los datos publicados en esa base de datos Para importar estos datos se pueden utilizar los siguientes comandos:
docker cp sakila/customers.json mongodb:/tmp/customers.json
docker cp sakila/films.json mongodb:/tmp/films.json
docker cp sakila/stores.json mongodb:/tmp/stores.json
docker exec mongodb mongoimport -d sakila -c customers --file /tmp/customers.json
docker exec mongodb mongoimport -d sakila -c films --file /tmp/films.json
docker exec mongodb mongoimport -d sakila -c stores --file /tmp/stores.json
Referencia: Operaciones CRUD
- Consultar documentos
-
Consultar sin filtros
db.proyectos.find()
-
Consultar con filtros
-
db.proyectos.find({"cantidad": 1, "tipo": "single"})
db.proyectos.find({$or: [{"cantidad": 1}, {"tipo": "multiple"}]})
- Actualizar documentos
- Actualizar un documento
db.proyectos.updateOne({ cantidad: 1 }, { $set: { tipo: "prueba" } })
- Actualizar multiples documentos
db.proyectos.updateMany( { presupuesto: { $ne: 100 } }, { $set: { presupuesto: 100 } })
- Eliminar documentos
-
Eliminar todos los documentos
db.proyectos.deleteMany({})
-
Eliminar documentos filtrados
db.proyectos.deleteMany({ cantidad: 1 })
-
Referencia: MongoDB Arquitectura y modelo de datos
Referencia: MongoDB: creación y utilización de índices
Referencia: dbHash
Referencia: Replication
Referencia: Diseño