Pular para o conteúdo principal

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

CampoObrigatórioTipoDescriçãoExemplo
hostsSim, na práticaTextoLista de hosts do MongoDB, separados por vírgula."mongo1:27017,mongo2:27017"
databaseSim, na práticaTextoNome do banco de dados."clientes"
usernameNãoTextoUsuário para autenticação."app_user"
passwordNãoTextoSenha do usuário."minhasenha"
authSourceNãoTextoBanco de dados usado para autenticar o usuário. Valor padrão: "admin"."admin"
replicaSetNãoTextoNome do replica set, se aplicável."rs0"
tlsNãoTexto ("true"/"false")Habilita conexão criptografada (TLS). Valor padrão: "false"."true"
srvNãoTexto ("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

CampoObrigatórioTipoDescriçãoExemplo
collectionSimTextoNome da coleção MongoDB a ser usada."clientes"
operationSimTexto: FIND, AGGREGATE, COUNT, INSERT, UPDATE, UPDATE_ALL, DELETE, DELETE_ALL, COLLECTION_STATSOperação a ser executada na coleção."FIND"
variablesNãoTexto (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çãoCamposDescrição
FINDquery (opcional), limit (opcional), skip (opcional), sort (opcional)Busca documentos que casam com o filtro query. Resposta: lista de documentos em JSON.
AGGREGATEaggregate (opcional)Executa um pipeline de agregação. Resposta: lista de resultados em JSON.
COUNTquery (opcional)Conta documentos que casam com o filtro. Resposta: {"count": N}.
INSERTdocument (obrigatório)Insere um documento na coleção. Resposta: documento inserido (com _id).
UPDATEfilter (obrigatório), update (obrigatório), multiUpdateEnabled (opcional, padrão "true"), upsert (opcional, padrão "false")Atualiza os documentos que casam com filter.
UPDATE_ALLupdate (obrigatório), multiUpdateEnabled (opcional, padrão "true")Atualiza todos os documentos da coleção.
DELETEfilter (obrigatório)Remove os documentos que casam com filter.
DELETE_ALLRemove todos os documentos da coleção.
COLLECTION_STATSRetorna 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 / SintomaCausa provávelComo 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/updateO JSON de variables está malformado (nesse caso é apenas ignorado, sem interromper o fluxo).Validar o formato JSON de variables.