Actualmente estoy jugando con algunos servicios en la nube como heroku, netlifly, vercel y MoongoDB Atlas, este ultimo me agrado ya que es muy intuitivo al momento de generar bases de datos, cluster entre otras cosas, su versión free me parece muy completa, por lo cual decide generar una breve guía de como usarlo.
🤔 ¿Que es MongoDB Atlas?
Es un servicio en la nube para bases de datos desarrollado por el equipo de mongoDB, es posible crear bases de datos las cuales son expuestas online lo cual permite conectar nuestras aplicaciones, Atlas se encarga de todos los aspectos de hosting, instalación y actualizaciones, por lo que solo nos encargaremos de las configuraciones básicas, como gestionar accesos, crear bases de datos, crear alertas, etc.
👐 Manos a la obra
El primer paso es crear una cuenta en el sitio de MongoDB Atlas. Al entrar en enlace anterior se mostrar la pagina principal en la que procederemos a seleccionar la opción Sign In.
Dicha opción nos mostrara una pantalla de Login en la que se tienen las siguientes opciones.
Acceder en el caso de tener una cuenta existente.
Acceder con una cuenta de Google.
Sign up la cual permite generar nuestro registro.
🔖 Nota: La opción de login dependerá de las preferencias del lector.
Si el registro se creo correctamente al iniciar sesión podremos ver el panel de administración, en el cual se mostrara el proyecto y cluster por defecto.
Podemos utilizar el botón “Create a New Cluster” pero con esta acción se solicitara un pago.
🚫 Borrando un Cluster
Por cuestiones didácticas procederemos a borrar el cluster y el proyecto creados por defecto al momento de crear nuestra cuenta, para esto seguiremos el flujo siguiente.
🔖 Nota: El proyecto es borrado ya que es la base para poder tener un cluster y por fines didácticos procederemos a borrar todo.
🛠 Creando un Cluster
Al borrar el proyecto y cluster procederemos a crear los propios, como la vez anterior seguiremos el siguiente flujo.
Una de las ventajas de crear el cluster es que podemos indicar a uno de los siguientes proveedores AWS, Google CloudPlatform o Azure, otro punto importante es que nos muestra los tipos de cluster que se pueden crear.
Shared Clusters: Para el desarrollo de aplicaciones pequeñas o para equipos que inician con MongoDB, prácticamente para poder probar el producto.
Dedicated Clusters: Para desarrollos avanzados o entornos de producción.
Dedicated Multi-Region Clusters: Para el desarrollo de aplicaciones de clase mundial que requieren soporte multiregional o una latencia muy baja.
🔖 Nota: Al contar con una cuenta free procederemos a seleccionar la opción Shared Clusters.
⚙️ Configurando Network Access
Al finalizar la creación procederemos a brindar el acceso a ciertas ip’s en pocas palabras generaremos un whitelist, para realizar esta tarea seguiremos el flujo siguiente.
Al generar nuestro WhiteList cómo se puede ver en el flujo anterior se muestran algunas opciones las cuales son.
Add Current IP Address: Con esta opción se agrega la ip publica del equipo con en el que estamos trabajando.
Allow Access From AnyWhere: Esta opción permite agregar la opción de darle acceso a cualquier IP.
Existe otra opción la cual es “This entry is temporary and will be deleted in” la cual permite generar el acceso por un limite de tiempo a cualquiera delas opciones mencionadas anteriormente.
📡 Conectando una Aplicación
Para poder tener accesos al cluster creado tenemos que generar un nuevo usuarios y crear la cadena de conexión, por lo que para esta acción seguiremos el siguiente flujo.
Al generar un nuevo usuario procederemos a indicar cómo realizaremos la conexión para este caso tenemos 3 opciones las cuales son.
Connect with the mongo shell: Permite conectarnos a mongoBD desde la consola del sistema siempre y cuando lo tengamos instalado
Connect your application: Permite generar la cadena de conexión a utilizarla en nuestra aplicación.
Connect using MongoDB Compass: Esta opción permite conectarnos usando la aplicación oficial de atlas.
👨🏻💻 Creando la aplicación
Antes de iniciar nuestra aplicación se es necesario contar son una instalación de NodeJS y se recomienda la siguiente estructura de carpetas.
Inicial mente procederemos a crear el package.json en el cual procederemos a a instalar las siguientes dependencias
moongose: Con esta dependencia procederemos a realizar la conexión con *MongoDB Atlas y podremos interactuar con la *Base de Datos.
expressjs: Lo utilizaremos para crear un servidor muy sencillo con el cual podremos ver las respuestas que nos mande Atlas.
nodemon: Se utilizara para que cada vez que generamos un cambio se genere un auto-reload.
🔖 Nota: Los próximos archivos todos serán generados dentro del directorio /src/.
El paso siguiente es crear el archivo schema.js el cual se puede considerar como un mapa de los campos a crear ademas podemos indicar el tipo de dato de cada unos de estos, en pocas palabras es el cuerpo de la colección a crear.
Una colección dentro de mongoDB es el equivalente a las tablas que se manejan en MySql o SqlServer.
Por cuestiones didácticas vamos a crear un JSON llamado fakeData.json en el cual tendremos nombres y apellidos que tomaremos de manera aleatoria para crear registros dentro de MongoDB.
Como paso final hay que generar el index.js en el cual se establecerá la conexión y contara con 2 rutas que nos permitirán consultar la Base de Datos o crear nuevos registros.
En el script anterior la conexión realizada esta envolviendo a la inicialización del servidor esto es para que dicha conexión este disponible al iniciar el server, al crear el servidor se generar dos rutas las cuales son.
Consultar los datos.
https://lr836.sse.codesandbox.io/
Crear un nuevo registro de manera aleatoria, esta ruta como se muestra en el código tiene el ejemplo base de para generar un registro.
https://lr836.sse.codesandbox.io/random
En el caso de que se tenga problemas ejecutando el código se cuenta con esta muestra para probarlo directamente o puede ir a codeSandBox.
📝 Conclusiones
Atlas es una herramienta muy completa y potente ademas esta respaldada por el mismo equipo que creo MongoDB😱, entre otras de sus fortalezas es la seguridad que nos brinda con él control de accesos y creación de usuarios.
La conectividad con nuestra aplicación que generamos no fue compleja fue de los mas sencillo y transparente, com recomendación te sugiero leas la documentación de Mongoose ya que tiene muchas funciones que permiten explotar a MongoDB Atlas.
Top comments (0)