Esta vez aprenderemos a conectar con una base de datos MongoDB en la nube. Para ello utilizaremos la web mLab.com, que nos provee de 500 MB de almacenamiento gratuito, así que créate una cuenta allí si aún no la tienes.
Todo el código mostrado a continuación se encuentra en este archivo.
En la carpeta del curso encontrarás el índice con las clases publicadas.
¿Qué es Mlab.com?
MLab es un servicio de base de datos en la nube completamente administrado que incluye el aprovisionamiento automatizado y la ampliación de bases de datos MongoDB, copia de seguridad y recuperación, supervisión y alerta 24/7, herramientas de administración basadas en web y soporte experto. La plataforma Database-as-a-Service de mLab potencia cientos de miles de bases de datos a través de AWS, Azure y Google y permite a los desarrolladores centrar su atención en el desarrollo de productos en lugar de en las operaciones.
Instalando dependencias
Para poder operar con MongoDB en Python debemos instalar la biblioteca pymongo. En la mayoría de los casos debería funcionar con:
pip3 install pymongo
Si deseas conocer el funcionamiento básico de pymongo puedes ver este tutorial.
Si tienes algún problema con la instalación de la biblioteca puedes acceder a su documentación.
Creando la base de datos
Para crear una base de datos simplemente le damos a 'create new', dentro de nuestro panel de usuario en mLab, y seguimos todos los pasos. Si tienes dudas puedes ver el siguiente vídeo:
Conectando con la base de datos
Si accedemos en mLab a nuestra base de datos, esta nos mostrará un URI con la cual podremos acceder a la base de datos desde nuestro cliente de pymongo. Para ello vamos a crear el siguiente código:
from pymongo import MongoClient
from os import environ
DATABASE_USERNAME = environ.get('DATABASE_USERNAME', '')
DATABASE_PASSWORD = environ.get('DATABASE_PASSWORD', '')
DATABASE_NAME = ''
BASE_URI = ''
DATABASE_URI = 'mongodb://{}:{}' + BASE_URI.format(DATABASE_USERNAME,
DATABASE_PASSWORD)
mongo = MongoClient(DATABASE_URI)
db = mongo[DATABASE_NAME]
En DATABASE_NAME debemos indicar el nombre de la base de datos que hemos creado y en BASE_URI tenemos que introducir desde el símbolo @ hasta el final de la URI que nos ofrece mLab para nuestra base.
Si quieres saber más sobre cuando utilizar MongoDB y cuando no en tus proyectos puedes leer este artículo.
Crear una colección
Si le indicamos a MongoDB que se conecte a una colección que no existe, se creará automáticamente.
Para saber más sobre colecciones en MongoDB puedes leer este artículo.
Por lo tanto, si añadimos las siguientes líneas al código y lo ejecutamos...
db.users
...se creará una colección en la base de datos con el nombre users.