Promoción verano: 6 meses de acceso a todos los cursos online con el 50% de descuento

Tutorial de MongoDB

En este tutorial vamos a realizar una pequeña introducción a una base de datos nosql llamada MongoDB.

logotipo de MongoDB



La palabra mongo proviene del inglés "humongous" que significa "extremadamente grande".
Es una base de datos de tipo NoSQL (que no usa el lenguaje SQL para realizar consultas).
Está orientada a documentos, que son muy similares a JSON, aunque utiliza su propia estructura de datos que se llama BSON.

Esto permite almacenar Strings, números, booleanos, arrays, objetos, fechas, etc. Por cierto, si quieres conocer en detalle JSON, lee el artículo del blog (contiene un validador json online) JSON, incluso tienes un validador json online.
 Mongodb es una base de datos muy rápida y de código abierto. La podemos encontrar para la mayoría de sistemas operativos como Windows, Linux, Mac OS.

Base de datos documental

Los datos se organizan en documentos y éstos en colecciones
En una analogía con una base de datos relacional, los documentos serían las filas, y las colecciones las tablas.

Así por ejemplo podríamos tener una colección de artículos con los siguientes campos (título, visitas, fecha de creación, etiquetas, etc).
Y podríamos tener varios documentos con campos diferentes
Es decir la estructura del documento es abierta. Esta estructura de los documentos se forma con pares (campo y valor), tal como se define en un documento JSON.

MongoDB utiliza su propio formato llamado BSON, que permite guardar Strings, Números, Booleanos, Objetos, Arrays, Fechas y el Identificador de Objeto.

Hay que comentar que MongoDB está relacionado con otras tecnologías como AngularJS, y nodeJS.
A este conjunto de frameworks se le llama MEAN Stack (Mongo Express AngularJS NodeJS) y está basado en Javascript.

Si también estáis interesados en conocer un poco de estas tecnologías, podéis pinchar en el artículo Angular JS y en servidor web con node JS.

Para acceder a la base de datos desde el terminal de windows o la consola de linux tan sólo hay que escribir mongo y ya accederemos.

Ejemplos de mongodb. Simula el uso de mongodb

Vamos a mostrar unos ejemplos de mongodb que ilustran de manera visual cómo crear una base de datos, listar las bases de datos existentes, insertar, modificar, eliminar y buscar documentos en una colección. Para ver cada ejemplo pulsa el botón correspondiente para simular su efecto en mongodb.

Como premisa inicial vamos a suponer que tenemos instalado y configurado correctamente MongoDB.

Crear una base de datos

Para crear una base de datos, tan sólo hay que escribir use coches. Este comando selecciona la base de datos en cuestión, y si no existe la crea.
Para sacar un listado de las bases de datos existentes hay que escribir show dbs.

Insertar un documento

Para insertar un documento en la colección coches, hacemos db.coches.insert( { "marca":"Seat", "modelos":[ "Ibiza", "Arona", "Leon" ] } ); y eso retorna un WriteResult con el número de documentos insertados.

Consultar los documentos

Para encontrar luego todos los documentos que hay en esa colección hacemos db.coches.find() y nos mostrará la lista de objetos en formato json. Como vemos a cada objeto se le asigna un identificador único por defecto. También podríamos especificar un id nosotros a la hora de insertarlo.
El comando find es muy potente y permite filtrar la lista por un campo/valor determinado. Por ejemplo podemos buscar sólo los coches de la marca "Seat":db.coches.find( {"name":"seat"} ).

Eliminar un documento

Para borrar un documento hay que usar el comando remove, así pues si queremos borrar de la colección coches los de la marca Honda, haríamos db.coches.remove( {"marca":"Honda"} ) y nos devolvería un WriteResult con el número de filas eliminadas.

Actualizar un documento

También podemos actualizar los documentos existentes de la colección, por ejemplo podemos añadir el Ateca a la lista de modelos del documento. db.coches.update ( {"marca":"Seat"}, {"$push:{"modelos":"Ateca"}} )

Existen muchas otras funcionalidades que iremos ampliando en un futuro, pero de momento con esto nos hacemos una idea de las posibilidades de la base de datos MongoDB.

      carlos@tutorial:~