MongoDB
1. Visão Geral
O componente MongoDB (mongodb) conecta o fluxo a um banco de dados MongoDB, permitindo buscar, inserir, atualizar, remover e agregar documentos em uma coleção.
Use quando o fluxo precisa ler ou gravar dados em um banco MongoDB. Só funciona como ação de saída — não pode ser usado como gatilho de entrada (o MongoDB não "dispara" o fluxo, ele é consultado por ele).
2. Pré-requisitos
- Um servidor MongoDB acessível pela plataforma (host e porta).
- Usuário e senha com permissão de acesso ao banco de dados desejado (se autenticação estiver habilitada no MongoDB).
- Conectividade de rede até o(s) host(s) do MongoDB.
3. Autenticação e Conexão
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
hosts | Sim, na prática | Texto | Lista de hosts do MongoDB, separados por vírgula. | "mongo1:27017,mongo2:27017" |
database | Sim, na prática | Texto | Nome do banco de dados. | "clientes" |
username | Não | Texto | Usuário para autenticação. | "app_user" |
password | Não | Texto | Senha do usuário. | "minhasenha" |
authSource | Não | Texto | Banco de dados usado para autenticar o usuário. Valor padrão: "admin". | "admin" |
replicaSet | Não | Texto | Nome do replica set, se aplicável. | "rs0" |
tls | Não | Texto ("true"/"false") | Habilita conexão criptografada (TLS). Valor padrão: "false". | "true" |
srv | Não | Texto ("true"/"false") | Se true, usa o esquema de conexão mongodb+srv:// (descoberta via DNS), em vez do esquema tradicional. Valor padrão: "false". | "true" |
4. Configuração / Operações Suportadas
| Campo | Obrigatório | Tipo | Descrição | Exemplo |
|---|---|---|---|---|
collection | Sim | Texto | Nome da coleção MongoDB a ser usada. | "clientes" |
operation | Sim | Texto: FIND, AGGREGATE, COUNT, INSERT, UPDATE, UPDATE_ALL, DELETE, DELETE_ALL, COLLECTION_STATS | Operação a ser executada na coleção. | "FIND" |
variables | Não | Texto (JSON) | Mapa de valores para substituir marcadores no formato :nome dentro de query, filter, document, update ou aggregate. | {"idCliente": 123} |
Campos por operação
| Operação | Campos | Descrição |
|---|---|---|
FIND | query (opcional), limit (opcional), skip (opcional), sort (opcional) | Busca documentos que casam com o filtro query. Resposta: lista de documentos em JSON. |
AGGREGATE | aggregate (opcional) | Executa um pipeline de agregação. Resposta: lista de resultados em JSON. |
COUNT | query (opcional) | Conta documentos que casam com o filtro. Resposta: {"count": N}. |
INSERT | document (obrigatório) | Insere um documento na coleção. Resposta: documento inserido (com _id). |
UPDATE | filter (obrigatório), update (obrigatório), multiUpdateEnabled (opcional, padrão "true"), upsert (opcional, padrão "false") | Atualiza os documentos que casam com filter. |
UPDATE_ALL | update (obrigatório), multiUpdateEnabled (opcional, padrão "true") | Atualiza todos os documentos da coleção. |
DELETE | filter (obrigatório) | Remove os documentos que casam com filter. |
DELETE_ALL | — | Remove todos os documentos da coleção. |
COLLECTION_STATS | — | Retorna estatísticas da coleção. |
5. Exemplos Práticos
Exemplo simples: buscar clientes de uma cidade específica.
Entrada:
{
"cidade": "São Paulo"
}
Configuração do componente:
{
"componentName": "mongodb",
"configurations": {
"collection": "clientes",
"operation": "FIND",
"query": "{\"cidade\": \":cidade\"}",
"variables": "{\"cidade\": \"{$.body.cidade}\"}",
"limit": "10"
}
}
Resposta:
[
{ "_id": "64f1a2b3c4d5e6f7a8b9c0d1", "nome": "Maria Silva", "cidade": "São Paulo" },
{ "_id": "64f1a2b3c4d5e6f7a8b9c0d2", "nome": "João Souza", "cidade": "São Paulo" }
]
Exemplo avançado: atualizar o status de um pedido específico, usando filter/update com variáveis.
Entrada:
{
"pedidoId": "981",
"novoStatus": "enviado"
}
Configuração do componente:
{
"componentName": "mongodb",
"configurations": {
"collection": "pedidos",
"operation": "UPDATE",
"filter": "{\"pedidoId\": \":id\"}",
"update": "{\"$set\": {\"status\": \":status\"}}",
"variables": "{\"id\": \"{$.body.pedidoId}\", \"status\": \"{$.body.novoStatus}\"}",
"multiUpdateEnabled": "false"
}
}
Resposta:
{
"matchedCount": 1,
"modifiedCount": 1
}
6. Erros Comuns e Troubleshooting
| Erro / Sintoma | Causa provável | Como resolver |
|---|---|---|
| "Connector IN Not supported for mongodb" | Tentativa de usar o MongoDB como gatilho de entrada. | Usar o componente apenas como ação de saída no fluxo. |
| "Collection empty." | O campo collection não foi preenchido. | Preencher collection com o nome da coleção. |
| "Document empty" | Operação INSERT sem o campo document. | Preencher document com o JSON a ser inserido. |
| "Filter empty" | Operação UPDATE ou DELETE sem o campo filter. | Preencher filter com o critério de busca. |
| "Update empty" | Operação UPDATE/UPDATE_ALL sem o campo update. | Preencher update com o operador de atualização (ex.: $set). |
| "Operation [valor] not found" | O campo operation não corresponde a nenhuma operação suportada. | Usar um dos valores válidos: FIND, AGGREGATE, COUNT, INSERT, UPDATE, UPDATE_ALL, DELETE, DELETE_ALL, COLLECTION_STATS. |
Variáveis não substituídas em query/filter/update | O JSON de variables está malformado (nesse caso é apenas ignorado, sem interromper o fluxo). | Validar o formato JSON de variables. |