Inicio Rápido de Watcher a MongoDB

MongoDB es una base de datos de documentos potente y multiplataforma que sobresale en el manejo de datos tanto estructurados como no estructurados. Su modelo de datos flexible y sin esquema se basa en documentos similares a JSON, lo que la convierte en una excelente opción para aplicaciones dinámicas que requieren consultas ad hoc e indexación.
Usar MongoDB proporciona un método directo para almacenar y utilizar datos del Watcher para procesamiento adicional u otras aplicaciones de proyecto.
Este tutorial te guiará a través del uso de la API de Watcher y Node-RED para enviar datos sin problemas a MongoDB, una configuración perfecta para proyectos que demandan manejo de datos en tiempo real y persistencia.
Parte 1. Configurar Watcher en Node-RED
Paso 1. Instalar Node-RED
Primero que todo, necesitas ejecutar una tarea en Watcher siguiendo el video a continuación. Si quieres saber más por favor haz clic aquí.
Node-RED es requerido para esta configuración, junto con la API de Watcher. Si no has instalado Node-RED o no lo has conectado con la API de Watcher, comienza aquí: Inicio Rápido de Watcher a Node-RED.
Paso 2. Preparar datos para MongoDB
Después de integrar el Watcher con Node-RED, el siguiente paso es preparar los datos del Watcher para MongoDB. Usa un nodo de función en Node-RED para formatear los datos apropiadamente.

Para el propósito de este tutorial, simplemente devolveremos todos los datos del Watcher. Sin embargo, te animamos a transformar los datos según sea necesario para tu aplicación.

Ejemplo de Función Node-RED para Formatear Datos
msg.payload = {
"tlid": msg.payload.value[0].tlid,
"tn": msg.payload.value[0].tn,
"content": msg.payload.value[0].content,
"image_url": msg.payload.value[0].image_url,
"timestamp": msg.payload.timestamp,
"orgId": msg.payload.orgId,
"eui": msg.payload.eui,
"channel": msg.payload.channel,
"measurementID": msg.payload.value[0].measurementID
};
return msg;
Parte 2. Configurar MongoDB
Paso 3. Crear una cuenta
A continuación, crea una cuenta de MongoDB o inicia sesión si ya tienes una. Si eres nuevo en MongoDB, comienza visitando mongodb.com y regístrate para obtener una cuenta gratuita.

Paso 4. Desplegar un nuevo Clúster
Una vez que hayas iniciado sesión, procede a desplegar un nuevo clúster:

- Elegir la Configuración del Clúster: Para desarrollo, recomendamos usar la configuración M0 porque es gratuita y suficiente para pruebas a pequeña escala. Sin embargo, puedes seleccionar una configuración diferente si se alinea mejor con los requisitos de tu proyecto.
- Seleccionar un Proveedor de Nube: Elegimos AWS debido a su amplia disponibilidad y confiabilidad, pero otros proveedores como Google Cloud o Azure son igualmente viables dependiendo de tus requisitos geográficos o técnicos.
- Seleccionar una Región: Esta debe ser la región más cercana a tu base de usuarios principal para minimizar la latencia y mejorar el rendimiento.

Paso 5. Configurar la Seguridad de tu Base de Datos
Una vez que tu nodo esté creado, navega al menú Quickstart en la barra lateral izquierda bajo Security. Aquí crearás un usuario de base de datos especificando un nombre de usuario y contraseña.

Por defecto, los usuarios tienen privilegios de lectura y escritura en cualquier base de datos. Tienes la opción de actualizar estos permisos y/o crear usuarios adicionales más adelante.
Después de configurar tu usuario, permanece en la página Quickstart y desplázate hacia abajo para agregar tu dirección IP actual a tu Lista de Acceso IP.

Paso 6. Crear una Base de Datos y Colección
En la barra lateral izquierda, haz clic en el menú Databases bajo la categoría Deployment. Luego, haz clic en Browse Collections para abrir la página de gestión de base de datos. Aquí es donde se gestionan todas tus bases de datos y colecciones.

Dentro del gestor de base de datos, haz clic en Add My Own Data para iniciar el proceso de crear una nueva base de datos y colección.

Aparecerá un mensaje solicitándote que ingreses los nombres para tu nueva base de datos y colección. Completa los nombres deseados para cada una.
Después de ingresar los nombres, haz clic en el botón Create para finalizar la creación de tu nueva base de datos y colección.

Paso 7. Obtener tu Hostname
Comienza iniciando sesión en tu panel de MongoDB Atlas. Desde aquí, navega al menú Database en la barra lateral izquierda para encontrar tu clúster. Localiza tu clúster deseado y haz clic en el botón Connect asociado con él. Esto abrirá una serie de opciones de conexión.

En las opciones de conexión presentadas, haz clic en Shell.

Después de seleccionar la opción MongoDB Shell, serás guiado a una sección titulada Run your connection string in your command line. Aquí encontrarás tu cadena de conexión completa presentada.
En la cadena de conexión, busca la porción que comienza después de mongodb+srv://
y continúa hasta que llegues a un carácter /
. Esta parte es tu hostname. Típicamente contiene el nombre de tu clúster seguido de .mongodb.net
.
Por ejemplo, si tu cadena de conexión es:
mongosh "mongodb+srv://my-cluster123.mongodb.net" --apiVersion 1 --username my-username
El nombre del host sería:
my-cluster123.mongodb.net

Parte 3. Conectar la Base de Datos MongoDB a Node-RED
Paso 8. Instalar el módulo MongoDB
Haz clic en el icono de las tres barras y luego haz clic en la opción Manage palette. Esto abre una nueva ventana donde puedes agregar o eliminar nodos.

Cambia a la pestaña Install dentro de la ventana de gestión de paleta. En la barra de búsqueda, escribe mongodb-aleph
para encontrar el módulo. Luego, haz clic en el botón install junto a la entrada node-red-contrib-mongodb-aleph.

El módulo node-red-contrib-mongodb-aleph se recomienda por su compatibilidad actual y confiabilidad al momento de escribir este tutorial (julio 2024). Sin embargo, la disponibilidad y funcionalidad de los módulos de Node-RED puede variar con el tiempo. Es recomendable revisar los comentarios de usuarios más recientes y las notas de compatibilidad en la biblioteca de Node-RED o repositorios de GitHub. Si encuentras problemas con este módulo, considera explorar otros módulos de MongoDB listados en la biblioteca de Node-RED para una opción más adecuada.
Paso 9. Configurar el nodo MongoDB
Una vez que hayas instalado el módulo MongoDB, arrastra el nodo mongodb - aleph - out a tu flujo de Node-RED y conéctalo al nodo de función.

Haz doble clic en el nodo MongoDB para configurarlo. Luego, haz clic en el icono más junto al campo servidor para agregar una nueva configuración de servidor.

- Ingresa el nombre del host que recuperaste anteriormente.
- Cambia la topología de conexión a DNS Cluster (mongodb+srv://) desde el menú desplegable.
- Ingresa el nombre de tu base de datos MongoDB.
- Ingresa el nombre de usuario que configuraste en la configuración de seguridad.
- Ingresa la contraseña correspondiente.
- Proporciona un nombre descriptivo para tu conexión MongoDB que se usará dentro de Node-RED.
Luego, haz clic en Add o Update para guardar la configuración del servidor.

Con el servidor configurado, ahora puedes especificar los detalles para la inserción de datos:
- Ingresa el nombre de la colección MongoDB donde quieres insertar los datos.
- Establece la operación a Insert, que agregará nuevos documentos a la colección.
Haz clic en Done para completar la configuración.

Paso 10. Desplegar
Finalmente, despliega tu flujo haciendo clic en el botón Deploy en la parte superior derecha de la interfaz de Node-RED. Esta acción activa tus nodos configurados, permitiendo que los datos fluyan desde tu nodo de función hacia MongoDB.

Ahora, verás los datos poblarse en MongoDB.

¡Felicitaciones por integrar exitosamente Watcher con MongoDB! Has abierto la puerta a una amplia gama de oportunidades emocionantes en tus esfuerzos de desarrollo. Prepárate para sumergirte en la creación de aplicaciones innovadoras que aprovechen las robustas capacidades de MongoDB. ¡Esperamos ver las soluciones extraordinarias que desarrollarás a continuación!
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.