Bases de datos no relacionales: MongoDB

Bueno, al parecer MongoDB no es un tema nuevo, pero para mi sí, así que comparto mi experiencia inicial con esta base de datos. De momento, comentaré el procedimiento que yo tuve que hacer para que todo funcione en mi windows XP, en el que estaré haciendo ejercicios para aprender, posteriormente veremos algo en productivo.

¿Qué es?

Es una base de datos no relacional, lo que le llaman NoSQL, es decir, no utiliza SQL. Vaya que el cambio de paradigma es complicado para los que vinimos de la vieja escuela! En lo personal me cuesta trabajo comprender bien el concepto, pero poco a poco saldrá. Usa JSON para su consulta y almacenamiento, para aumentar la sencillez de uso. Cassandra (después compartiremos los tutoriales e información correspondiente) es otro tipo de base de datos basado en el mismo concepto, y los gigantes twitter y facebook lo utilizan.  Con esto podemos comprobar la velocidad, escalabilidad y estabilidad que ofrecen las bases de datos no relacionales. Mas o menos transcrito y mal traducido del website de MongoDB:

MongoDB es el enlace perfecto entre el almacenamiento clave/valor (que son rápidos y altamente veloces) y los sistemas tradicionales de  RDBMS (que proporcionan consultas ricas y una profunda funcionalidad ).

MongoDB es escalable, de alto desempeño, de código abierto, base de datos orientada a documentos. Escrito en C++ ofrece las siguiente características:

  • Almacenamiento orientado a documentos:
    Documentos estilo JSON con esquemas dinámicos ofrecen simplicidad y poder.
  • Soporte Full index:
    Indices sobre cualquier atributo, tal y como estamos acostumbrados.
  • Replicación y alta disponibilidad:
    Espejos entre LANs y WANs
  • Auto-Sharding:
    Escalabilidad horizontal sin comprometer la funcionalidad.
  • Consultas:
    Ricas y basadas en  documentos
  • Rápidas actualizaciones en el contexto.
  • Mapeo y reducción:
    Agregación flexible y procesamiento de datos.
  • GridFS:
    Almacena archivos de cualquier tamaño sin complicar tu “stack”.
  • Soporte comercial:
    Soporte comercial, capacitación y consultoría disponibles.

Algunos sitios importantes que utilizan ya MongoDB son:

¿Cómo instalar MongoDB?

Bueno, ahora sí comienza lo bueno.

Lo primero que hice fue descargar la versión MongoDB 1.4.4 para windows de 32 bits, que es la última versión que me indicaba en su sitio de descargas. Este es un archivo ZIP.

Una vez descargado, puedes instalar el contenido en cualquier carpeta de tu equipo. Yo lo hice directo en la raiz del disco duro, en C:/mongodb

Ruta de MongoDB

Ruta default donde se almacenan las Bases de datos de MongoDBCon eso queda instalado :D . Es importante crear una carpeta C:\data\db, que es donde por default se almacenan las bases de datos de MongoDB. Supongo que es posible cambiarlo, pero como soy primerizo en el tema, así lo dejé.

Poner en marcha

Bueno creo que echar a andar MongoDB en windows es muy sencillo, sólo tienes que lanzar dos archivos ejecutables, llamados mongod.exe y mongo.exe, en ese órden. Esto está en la carpeta “bin” de MongoDB, en este caso, c:/mongodb/bin

Órden en que debe lanzarse los ejecutables de MongoDB en windows

Una vez ejecutados ambos archivos, te saldrán unas ventanas de comando, una es como el servicio de MongoDB (mongod.exe) y la otra es el shell(mongo.exe), en donde sucederá toda la magia. Siempre hay que tener ambas abiertas para poder utilizar MongoDB.

Servicio de MongoDB y shell

Es todo, tenemos MongoDB instalado y funcionando perfectamente en nuestro equipo. Para corroborarlo, en la ventana de Shell podemos escribir “help”. Eso nos dará la serie de comandos disponibles para la gestión de las bases de datos de MongoDB.

El comando help de MongoDB ofreciéndonos la lista de comandos

Enhorabuena! MongoDB está funcionando perfectamente en tu equipo con windows. En el siguiente artículo de esta serie sobre MongoDB nos adentraremos en el uso de ésta poderosa y simple base de datos, así como su uso en lenguajes como PHP y python.  De momento, sólo una probadita:

Demostración de la sencillez de uso de MongoDB

Demostración de la sencillez de uso de MongoDB


1.- > use dbprueba
switched to db dbprueba
2.- > db.tabla1.insert({"campo1":"valor1", "campo2":"valor2", "campo3":["dato1","dato2", "dato3"]})
3.- > db.tabla1.find()

El resultado sería:

{ “_id” : ObjectId(“4c3caa29e36d000000003d45″), “campo1″ : “valor1″, “campo2″ :
“valor2″, “campo3″ : [ "dato1", "dato2", "dato3" ] }

Con la línea 1, creamos una base de datos,y además hacemos un switch sobre la misma para trabajar sobre ella

Con la línea 2, creamos lo que podría equivaler a una tabla(en las bases de datos no hay tablas se llaman colecciones y lo veremos en el siguiente artículo), le añadimos tres campos llamados campo1, campo2 y campo3, de tipo varchar los primeros dos, y de tipo enum el tercero. Y además le agregamos valores a cada uno de ellos, así como la enumeración en el caso del último campo.

Con la línea 3 mostramos lo que hay en la coleccion llamada tabla1.

Para los que están acostumbrados a las bases de datos relacionales, lo anterior, en mysql, lo hubieramos tenido que hacer mas o menos de la siguiente manera:

>CREATE DATABASE 'dbprueba' ;
>USE 'dbprueba';
>CREATE TABLE 'tabla1' (
`campo1` varchar(20) DEFAULT NULL,
`campo2` varchar(20) DEFAULT NULL,
`campo3` enum('dato3','dato2','dato1') DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
>INSERT INTO 'tabla1' (
`campo1` ,
`campo2` ,
`campo3`
)
VALUES (
'valor1', 'valor2', 'dato3'
);
>SELECT * FROM 'tabla1'

Mas o menos así sería la cuestión, como vemos su uso es incuso más sencillo, y nos evitamos escribir muchas líneas.  Esto es sólo una idea, pero ya iremos adentrándonos un poco más en el maravilloso mundo de MongoDB.

Te dejo los enlaces correspondientes para comenzar con MongoDB wn windows. Con linux, seguramente los que lo utilizan les será aún más fácil el proceso.

Leave a Reply