Curso básico de MongoDB
MongoDB es:
- Open Source
- NoSQL (Not only SQL)
- Documents Oriented
- Schema Less
- Scale Out
Son la unidad básica y se representa en formato JSON:
{
"_id": "5cf0029caff5056591b0ce7d",
"firstname": "Jane",
"lastname": "Wu",
"address": {
"street": "1 Circle Rd",
"city": "Los Angeles",
"state": "CA",
"zip": 90404
},
"hobbies": ["surfing", "coding"]
}
Son agrupaciones de documentos. No nos imponen un esquema o estructura rígida para guardar nuestra información.
Contenedores de colecciones.
Contiene las bases de datos.
De forma un poco mas gráfica podríamos verlo de la siguiente manera:
CLUSTER > BASE DE DATOS > COLECCIÓN > DOCUMENTOS
Como ejemplo en todo el curso haremos una representación de una ferretería.
- Abrir la terminal para iniciar el servidor:
> mongod
- Dejemos abierta la anterior y abriremos una nueva:
> mongo
Desde esta segunda terminal abierta haremos todo lo demás.
- Ver las bases de datos.
> show dbs
- Base de datos actual.
> db
- Hacer una nueva base de datos.
> use ferreteria
- Insertar una colección.
> db.createCollection("mercancia")
- Mostrar las colecciones.
> show collections
- Insertar un documento a una colección.
> db.mercancia.insert({"nombre": "escoba", "precio": 150})
- Insertar varios documentos a una coleccion.
> db.mercancia.insert([{"nombre": "escoba", "precio": 150},{"nombre": "pala", "precio": 200}])
- Forma normal.
> db.mercancia.find()
- Forma ordenada.
> db.mercancia.find().pretty()
- Buscar por algun atributo específico.
> db.mercancia.find({"nombre": "escoba"}).pretty()
- Contar los documentos que hay dentro de alguna coleccion.
> db.mercancia.count()
- Mostrar con un límite.
> db.mercancia.find({}).limit(2)
- Ordenarlo.
> db.coleccion.find({"precio": 200}).sort({nombre: 1})
- Actualizando todo el documento por otro.
> db.mercancia.update({"nombre": "pala"}, {"fabricante": "truper"})
- Actualizando el documento sin eliminar los demás datos.
> db.mercancia.update({"nombre": "escoba"}, {$set: {"fabricante": "truper"}})
- Incrementar un número.
> db.mercancia.update({"nombre": "escoba"}, {$inc: {"precio": 1}})
- Renombrar un atributo.
> db.coleccion.update({"nombre": "escoba"}, {$rename: {"nombre": "name"}})
- Eliminar documentos.
> db.mercancia.remove({"nombre": "escoba"})
- Eliminar colección.
> db.mercancia.drop()
- Eliminar base de datos.
> db.dropDatabase()
- Cerrar la terminal en la que trabajamos.
> exit
Ahora ya se puede cerrar la ventana.
En la otra terminal nos aparecerá que se cerró la conexión. Basta con teclear "Control C" y estará todo terminado.