mongodb¶
fonte
lê documentos de uma collection mongodb e os transforma em registros tabulares para processamento downstream.
casos de uso¶
- extrair logs ou eventos armazenados no mongo
- sincronizar documentos para um lakehouse analítico
- transformar dados de um schema flexível em tabelas estruturadas
configuração¶
| campo | tipo | obrigatório | descrição |
|---|---|---|---|
credential_id |
uuid | sim | id da conexão mongodb em conexões |
database |
string | sim | nome do banco de dados |
collection |
string | sim | nome da collection |
filter |
object | não | filtro mongodb (sintaxe do driver pymongo) · padrão: {} |
projection |
object | não | campos a incluir/excluir · padrão: todos os campos |
limit |
number | não | máximo de documentos a retornar · 0 = sem limite |
exemplos¶
leitura completa de uma collection¶
com filtro por data¶
{
"credential_id": "uuid-da-conexao",
"database": "app_producao",
"collection": "pedidos",
"filter": {
"created_at": {
"$gte": { "$date": "2024-01-01T00:00:00Z" }
},
"status": "finalizado"
}
}
com projeção (selecionar campos)¶
{
"credential_id": "uuid-da-conexao",
"database": "app_producao",
"collection": "usuarios",
"projection": {
"_id": 0,
"email": 1,
"nome": 1,
"created_at": 1,
"plano": 1
},
"limit": 10000
}
filtrando por operador in¶
{
"credential_id": "uuid-da-conexao",
"database": "app_producao",
"collection": "eventos",
"filter": {
"tipo": { "$in": ["compra", "cancelamento", "reembolso"] }
}
}
estrutura de dados¶
documentos mongodb são convertidos para linhas tabulares:
documento mongodb:
{
"_id": ObjectId("..."),
"nome": "João",
"endereco": { "cidade": "SP", "estado": "SP" },
"tags": ["premium", "ativo"]
}
↓ após conversão
| _id | nome | endereco | tags |
|-------------|-------|-------------------|-------------------|
| ObjectId... | João | {"cidade": "SP"} | ["premium","ativo"]|
campos aninhados (object) ficam como json string na tabela. use o nó expandir json para desestruturá-los.
documentos com schema variável
quando os documentos de uma collection têm campos diferentes, o duckdb infere o schema da união de todos os campos. colunas ausentes em alguns documentos recebem valor null.
configurando a conexão¶
em configurações → conexões, crie uma conexão do tipo mongodb:
| campo | descrição |
|---|---|
| host | endereço do servidor mongo |
| port | porta (padrão: 27017) |
| credencial | usuário e senha (opcional para mongo sem auth) |
a uri é montada automaticamente: