Saltar al contenido principal

MongoDB

1. Visión General​

El componente MongoDB (mongodb) conecta el flujo a una base de datos MongoDB, permitiendo buscar, insertar, actualizar, eliminar y agregar documentos en una colección.

Úsalo cuando el flujo necesita leer o grabar datos en una base MongoDB. Solo funciona como acción de salida — no puede usarse como disparador de entrada (MongoDB no "dispara" el flujo, es consultado por él).

2. Prerrequisitos​

  • Un servidor MongoDB accesible por la plataforma (host y puerto).
  • Usuario y contraseña con permiso de acceso a la base de datos deseada (si la autenticación está habilitada en MongoDB).
  • Conectividad de red hasta el/los host(s) de MongoDB.

3. Autenticación y Conexión​

CampoObligatorioTipoDescripciónEjemplo
hostsSí, en la prácticaTextoLista de hosts de MongoDB, separados por coma."mongo1:27017,mongo2:27017"
databaseSí, en la prácticaTextoNombre de la base de datos."clientes"
usernameNoTextoUsuario para la autenticación."app_user"
passwordNoTextoContraseña del usuario."micontrasena"
authSourceNoTextoBase de datos usada para autenticar al usuario. Valor por defecto: "admin"."admin"
replicaSetNoTextoNombre del replica set, si corresponde."rs0"
tlsNoTexto ("true"/"false")Habilita la conexión cifrada (TLS). Valor por defecto: "false"."true"
srvNoTexto ("true"/"false")Si es true, usa el esquema de conexión mongodb+srv:// (descubrimiento vía DNS), en lugar del esquema tradicional. Valor por defecto: "false"."true"

4. Configuración / Operaciones Soportadas​

CampoObligatorioTipoDescripciónEjemplo
collectionSíTextoNombre de la colección MongoDB a usar."clientes"
operationSíTexto: FIND, AGGREGATE, COUNT, INSERT, UPDATE, UPDATE_ALL, DELETE, DELETE_ALL, COLLECTION_STATSOperación a ejecutar en la colección."FIND"
variablesNoTexto (JSON)Mapa de valores para reemplazar marcadores con formato :nombre dentro de query, filter, document, update o aggregate.{"idCliente": 123}

Campos por operación​

OperaciónCamposDescripción
FINDquery (opcional), limit (opcional), skip (opcional), sort (opcional)Busca documentos que coinciden con el filtro query. Respuesta: lista de documentos en JSON.
AGGREGATEaggregate (opcional)Ejecuta un pipeline de agregación. Respuesta: lista de resultados en JSON.
COUNTquery (opcional)Cuenta documentos que coinciden con el filtro. Respuesta: {"count": N}.
INSERTdocument (obligatorio)Inserta un documento en la colección. Respuesta: documento insertado (con _id).
UPDATEfilter (obligatorio), update (obligatorio), multiUpdateEnabled (opcional, por defecto "true"), upsert (opcional, por defecto "false")Actualiza los documentos que coinciden con filter.
UPDATE_ALLupdate (obligatorio), multiUpdateEnabled (opcional, por defecto "true")Actualiza todos los documentos de la colección.
DELETEfilter (obligatorio)Elimina los documentos que coinciden con filter.
DELETE_ALL—Elimina todos los documentos de la colección.
COLLECTION_STATS—Devuelve estadísticas de la colección.

5. Ejemplos Prácticos​

Ejemplo simple: buscar clientes de una ciudad específica.

Entrada:

{
"cidade": "São Paulo"
}

Configuración del componente:

{
"componentName": "mongodb",
"configurations": {
"collection": "clientes",
"operation": "FIND",
"query": "{\"cidade\": \":cidade\"}",
"variables": "{\"cidade\": \"{$.body.cidade}\"}",
"limit": "10"
}
}

Respuesta:

[
{ "_id": "64f1a2b3c4d5e6f7a8b9c0d1", "nome": "Maria Silva", "cidade": "São Paulo" },
{ "_id": "64f1a2b3c4d5e6f7a8b9c0d2", "nome": "João Souza", "cidade": "São Paulo" }
]

Ejemplo avanzado: actualizar el estado de un pedido específico, usando filter/update con variables.

Entrada:

{
"pedidoId": "981",
"novoStatus": "enviado"
}

Configuración del componente:

{
"componentName": "mongodb",
"configurations": {
"collection": "pedidos",
"operation": "UPDATE",
"filter": "{\"pedidoId\": \":id\"}",
"update": "{\"$set\": {\"status\": \":status\"}}",
"variables": "{\"id\": \"{$.body.pedidoId}\", \"status\": \"{$.body.novoStatus}\"}",
"multiUpdateEnabled": "false"
}
}

Respuesta:

{
"matchedCount": 1,
"modifiedCount": 1
}

6. Errores Comunes y Troubleshooting​

Error / SíntomaCausa probableCómo resolverlo
"Connector IN Not supported for mongodb"Intento de usar MongoDB como disparador de entrada.Usar el componente solo como acción de salida en el flujo.
"Collection empty."El campo collection no fue completado.Completar collection con el nombre de la colección.
"Document empty"Operación INSERT sin el campo document.Completar document con el JSON a insertar.
"Filter empty"Operación UPDATE o DELETE sin el campo filter.Completar filter con el criterio de búsqueda.
"Update empty"Operación UPDATE/UPDATE_ALL sin el campo update.Completar update con el operador de actualización (ej.: $set).
"Operation [valor] not found"El campo operation no corresponde a ninguna operación soportada.Usar uno de los valores válidos: FIND, AGGREGATE, COUNT, INSERT, UPDATE, UPDATE_ALL, DELETE, DELETE_ALL, COLLECTION_STATS.
Variables no reemplazadas en query/filter/updateEl JSON de variables está malformado (en ese caso simplemente se ignora, sin interrumpir el flujo).Validar el formato JSON de variables.