QANode Logo

Nó MongoDB

O nó MongoDB permite executar operações no banco de dados MongoDB, incluindo consultas, inserções, atualizações, exclusões e aggregation pipelines.


Visão Geral

PropriedadeValor
Tipomongodb-query
CategoriaBanco de Dados
Cor🟢 Verde (#22c55e)
Entradain
Saídaout

Conexão

Usando Credenciais Salvas (Recomendado)

Selecione uma credencial do tipo MongoDB.

Configuração Manual

CampoTipoDescrição
URIstringConnection string MongoDB
Banco de DadosstringNome do banco
ColeçãostringNome da coleção

URI de exemplo:

mongodb://usuario:senha@host:27017/banco?authSource=admin
mongodb+srv://usuario:senha@cluster.exemplo.mongodb.net/banco

Operações

find

Busca múltiplos documentos.

CampoTipoDescrição
FiltroJSONCritérios de busca
LimitenumberMáximo de documentos (padrão: 20)
OpçõesJSONProjeção, sort, etc.

Exemplo:

// Filtro
{ "active": true, "age": { "$gte": 18 } }

// Opções
{ "sort": { "name": 1 }, "projection": { "name": 1, "email": 1 } }

findOne

Busca um único documento.

CampoTipoDescrição
FiltroJSONCritérios de busca

Exemplo:

{ "_id": "abc123" }
{ "email": "joao@exemplo.com" }

insertOne

Insere um novo documento.

CampoTipoDescrição
DocumentoJSONDocumento a ser inserido

Exemplo:

{
  "name": "João",
  "email": "joao@exemplo.com",
  "createdAt": "{{ new Date().toISOString() }}"
}

updateOne

Atualiza um documento existente.

CampoTipoDescrição
FiltroJSONCritérios para encontrar o documento
UpdateJSONOperações de atualização

Exemplo:

// Filtro
{ "_id": "abc123" }

// Update
{ "$set": { "active": false, "updatedAt": "2024-01-01" } }

deleteOne

Remove um documento.

CampoTipoDescrição
FiltroJSONCritérios para encontrar o documento

Exemplo:

{ "email": "remover@exemplo.com" }

aggregate

Executa um aggregation pipeline.

CampoTipoDescrição
PipelineJSONArray de estágios
LimitenumberMáximo de resultados

Exemplo:

[
  { "$match": { "status": "active" } },
  { "$group": { "_id": "$department", "count": { "$sum": 1 } } },
  { "$sort": { "count": -1 } }
]

Outputs

OutputTipoDescrição
documentsarrayDocumentos retornados (find, aggregate)
documentanyDocumento único (findOne)
resultobjectResultado da operação (insert, update, delete)

Acessando os Outputs

// Lista de documentos
{{ steps.mongo.outputs.documents }}

// Primeiro documento
{{ steps.mongo.outputs.documents[0].name }}

// Documento único
{{ steps.mongo.outputs.document.email }}

// Resultado de insert
{{ steps.mongo.outputs.result.insertedId }}

// Resultado de update
{{ steps.mongo.outputs.result.modifiedCount }}

Exemplos Práticos

Verificar dados após API

[HTTP Request: POST /api/products]
    │
    ▼
[MongoDB: findOne → { "sku": "{{ steps.api.outputs.json.sku }}" }]
    │
    ▼
[If: {{ steps.mongo.outputs.document }} !== null]
    │ true → [Log: "Produto criado: {{ steps.mongo.outputs.document.name }}"]

Preparar dados de teste

[MongoDB: insertOne → { "name": "Test User", "role": "tester" }]
    │
    ▼
[HTTP Request: GET /api/users/{{ steps.insert.outputs.result.insertedId }}]

Relatório com aggregation

[MongoDB: aggregate → [
    { "$match": { "date": { "$gte": "2024-01-01" } } },
    { "$group": { "_id": "$status", "count": { "$sum": 1 } } }
]]
    │
    ▼
[Log: "Resultados: {{ JSON.stringify(steps.aggregate.outputs.documents) }}"]

Dicas

  • O campo Filtro aceita todos os operadores MongoDB ($eq, $ne, $gt, $in, $regex, etc.)
  • Use expressões {{ }} nos valores do JSON para injetar dados dinâmicos
  • O limite padrão de 20 documentos pode ser alterado para evitar retornar dados excessivos
  • Para operações complexas, use aggregation pipelines
  • Teste a conexão na tela de credenciais antes de usar no fluxo