Potente ORM para MongoDB

  
6 de Agosto de 2014   0  

Actualmente el uso de ORM’s ha implicado un avance muy importante dentro de la ingeniería de software. Evitar la escritura directa de SQL dentro de nuestro código y utilizar una capa intermedia entre los datos y nuestra aplicación, nos permite enfocar nuestro tiempo y esfuerzo en aspectos más importantes como la optimización y seguridad del software.

 

Mongoengine es un ORM escrito en Python para trabajar con el motor MongoDB, el cual es un gestor de bases de datos No relacional o NoSQL. Mongoengine está pensado y diseñado al estilo del ORM de Django, así que si estás familiarizado con algo como:User.objects.get(username=”alex”), se te hará fácil y familiar utilizar este ORM NoSQL.

Instalación.

La instalación de este ORM es muy sencillo, basta con ejecutar lo siguiente:

$ pip install mongoengine

La instalación copiará todo lo necesario a nuestro path de python para poder hacer uso de él desde cualquier proyecto que necesitemos trabajar.

Ejemplo de uso.

Ahora veremos un ejemplo de cómo utilizar mongoengine.

Nota: Antes de comenzar, es necesario que hayan instalado mongo en su equipo y que lo tengan corriendo con el comando “mongod” o como servicio o daemon.

Paso 1.

Primero vamos a crear un archivo llamado mymongo.py en el que escribiremos nuestras primeras líneas para conectar con una base de datos o colección en específico.

mymongo_1

Posteriormente guardamos con el nombre “mymongo.py” en la ubicación que más les convenga.

Paso 2.

Ahora crearemos nuestro primer objecto de tipo Documento; este llevará todos los atributos que necesitemos almacenar, para este caso almacenaremos comentarios y el autor del comentario:

mymongo2

Como pueden observar, esta clase “Comment” tiene 2 atributos que son muy similares a la estructura que maneja Django para el uso de su ORM.

Paso 3.

Una vez que ya tenemos lista nuestra conexión y la estructura de nuestro documento, ahora vamos a escribir en él.

mymongo3

 

Observamos que es muy sencillo guardar información con mongoengine, basta con instanciar un objeto, agregar la información deseada y aplicar un .save()

Paso 4.

Ya teniendo el archivo, abrimos nuestra terminal y nos posicionamos en la ruta donde guardamos nuestro ejemplo, en mi caso lo guardé en el “Escritorio”. Ejecutamos el script Python como lo muestra la siguiente imagen.

mymongo4

 

Vemos que nos envía nuestro mensaje de confirmación que escribimos en nuestro código.

Paso 5.

Ahora solo nos queda verificar que se haya guardado realmente. Para esto he utilizado un software muy bueno llamado RoboMongo que se encuentra disponible para las plataformas de Windows, Linux y Mac, y por si fuera poco, es Open Source!!

Creamos una conexión a mongoDB:

robomongo1

Guardamos y le damos clic al botón Connect.

robomongo2

Y Vualá! vemos que efectivamente tenemos nuestra colección y registro guardados en mongodb!

robomongo3

En este ejemplo pudimos ver cómo almacenar información en mongodb, claro está que para buenas prácticas, no debemos escribir nuestra conexión, nuestro modelo y la operación guardar dentro de un mismo archivo, sino que se puede distribuir de la manera que se desee para organizar mejor el código.

Más información.

Para que puedan adentrarse un poquito más en este ORM llamado mongoengine, les invito a visitar su documentación oficial en el que encontrarán más ejemplos de manipulación de datos en mongo.

El equipo de Mongoengine también ha desarrollado complementos para poder utilizarlos con Flask y Django y lo pueden encontrar dentro de su repositorio de Github.

mongoengine_repo

 

 

Fuente: http://mongoengine.org/



Alex Dzul

FullStack Python / Django Developer. #jslove

Temas relacionados