---
title: SQL-Mongo
slug: sql-mongo
docTags: 
createdAt: 2024-04-16T17:04:49.631Z
---

## Objetivo/Resumo

A API Fluid Conector SQL/Mongo oferece uma interface simplificada e padronizada para executar operações em bancos de dados SQL e MongoDB. Seu objetivo é facilitar o acesso e manipulação de dados, permitindo que desenvolvedores realizem consultas e inserções de forma eficiente e segura.

Esta documentação fornece informações detalhadas sobre como fazer requisições, os parâmetros necessários, e os campos específicos para cada operação. Além disso, inclui instruções sobre como configuração de conexão e os dados de configuração necessários.

Seja para consultas simples, inserções de dados complexas ou operações avançadas como filtragem e ordenação, a API Fluid Conector SQL/Mongo simplifica o processo de interação com bancos de dados, tornando o desenvolvimento mais ágil e eficaz.

## Criando um fluxo utilizando Conector SQL/Mongo

Para criar um fluxo utilizando o conector SQL/Mongo, é preciso criar uma conexão e em seguida configurar o fluxo.

### Configurando conexão SQL/Mongo

:::hint{type="info"}
Acesse nosso passo a passo para [Criar Conexão](docId:1pCVN0mJbFKUjHMhj86K-).
:::

Estes são os seguintes parâmetros de configuração da conexão SQL/Mongo que serão requisitados em sua criação:

- **Nome**: parâmetro padrão em qualquer criação de uma conexão, te ajudará a identificar melhor sua conexão (campo obrigatório)
- **Descrição**: Este campo é opcional, mas pode ser útil para fornecer detalhes sobre a finalidade da conexão.
- **Driver**: Selecione o driver apropriado para sua conexão:
  - **Mongo**: Selecione esta opção se estiver se conectando a um banco de dados MongoDB. Você precisará fornecer a URL de conexão e o nome do banco de dados.
  - **Snowflake**: Se estiver conectando ao Snowflake, forneça a URL de conexão.
  - **PostgreSQL/MySQL/SQL Server/Oracle**: Se estiver se conectando a um dos bancos de dados mencionados, especifique o tipo de driver necessário (PostgreSQL/MSSQL/MySQL/SQL Server/Oracle) e a URL de conexão correspondente.

:::hint{type="info"}
Para novas conexões com **SQL Server** ou **Azure SQL**, recomenda-se utilizar o driver `SQL Server (Recomendado)`.
:::

Certifique-se de preencher esses parâmetros corretamente para estabelecer uma conexão bem-sucedida.

### Segue alguns exemplos de URLs de Configuração

### Exemplo de URL de Configuração para Snowflake

```json
{
	"url": "usuario:senha@url_dos_snowflake/BANCO_DE_DADOS?schema=SCHEMA_SE_NECESSARIO&warehouse=WAREHOUSE_SE_NECESSARIO"
}
```

### Exemplo de URL de Configuração para SQLServer

```json
{
      "url": "sqlserver://user$_:password@1localhost:1433?database=DB&connection+timeout=30",
}
```

### Exemplo de URL de Configuração para Postgres

```json
{
    "url": "user:password@tcp(localhost:1433)/database",
}
```

### Configurando fluxo SQL/Mongo

Ao configurar um fluxo SQL/Mongo, é necessário realizar a parametrização de três configurações essenciais:

1. **Operação**: Nesta etapa, você define a operação que deseja executar. As opções disponíveis incluem:
   - **Select**: Utilizado para realizar consultas no banco de dados.
   - **Insert**: Usado para inserir dados no banco de dados.
   - **SQL**: Permite que você utilize consultas SQL personalizadas para selecionar dados. Utilize os campos adicionais fornecidos para configurar sua consulta.
2. **Argumentos**: Aqui, você define o que vai utilizado no corpo da requisição que pode ser enviado utilizando [Template](docId\:TReaJH8tvdyh6uKYEAQZP) ou [De/para](docId\:VOQdaUkjjknbSWVRHbzQW) para configurar a busca no banco com o conector.
3. **Tabela**: Este campo requer o nome da tabela que será afetada pela operação definida. Certifique-se de fornecer o nome correto da tabela para garantir que a operação seja realizada no local desejado.

### Operação Insert - Configurando o Template

A operação de inserção (Insert) serve para adicionar dados em uma determinada tabela de um banco de dados. Para realizar esta operação, é necessário configurar uma lista de objetos onde cada chave representa uma coluna da tabela e cada valor é o dado a ser inserido nessa coluna.

A Estrutura do payload para a operação de inserção deve ser uma lista de objetos JSON. Cada objeto na lista representa uma linha a ser inserida na tabela e cada chave-valor no objeto representa uma coluna e o respectivo valor a ser inserido.

A seguir, apresentamos um exemplo de como deve ser estruturado o payload JSON para a operação de inserção:

```json
[
    {
        "id": 1,
        "name": "João",
        "age": 30,
        "email": "joao@example.com"
    },
    {
        "id": 2,
        "name": "Maria",
        "age": 25,
        "email": "maria@example.com"
    }
]

```

### Operação SQL - Configurando o Template

Ao configurar os argumentos no template, é importante entender o payload padrão reconhecido pela nossa aplicação. Este payload inclui:

- **Statement**: Neste campo, definimos a query SQL a ser executada, os argumentos a serem passados na query e as colunas a serem retornadas ou inseridas.
- **Args**: Esta é uma lista de variáveis de busca que precisam ser incluídas na cláusula WHERE da query. Cada argumento substitui um ponto de interrogação (?) na query, conforme exemplificado abaixo:
- **Out**: Este campo indica como você espera receber a resposta dos dados do conector.

Segue abaixo um exemplo do template utilizado:

```json
[
    {
        "statement": "SELECT coluna_tabela_1, coluna_tabela_2, coluna_tabela_3
        FROM nome_da_tabela WHERE coluna_tabela_1 = ? ",
        "args":["filtro_da_busca"],
        "out": [
            { "name": "coluna_tabela_1", "as": "int"},
            { "name": "coluna_tabela_2", "as": "string"},
            { "name": "coluna_tabela_3", "as": "string"}
        ]
    }
]
```

## Na Prática

Neste tópico, vamos criar um fluxo para demonstrar como funciona a consulta de dados em um banco utilizando nosso conector.

### Exemplo de Caso:

Vamos criar um fluxo para buscar dados do banco utilizando o conector.

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/F8_XzWAREZDE6ThcWH4M0_untitled-5.png)

**Passo 'buscardados'**

Aqui está a parametrização do nosso primeiro e único passo:

::Image[]{src="https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/fGoBq6197dqc2acRbgqNP_untitled-6.png" size="60" width="408" height="575" position="center" darkWidth="408" darkHeight="575" showCaption="false"}

Observe que utilizamos a operação `SQL`, os Argumentos `Template` e a tabela com a qual iremos trabalhar. O próximo passo é a criação do template. Segue um exemplo de uso:

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/ZG4YyMDb9kNQYXwL5yf-C_untitled-7.png)

Assim que executarmos o fluxo, teremos a requisição:

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/g26pt7Rjiz7ExGKK2_Kf3_untitled-8.png)

E a resposta com os dados buscados:

![](https://api.archbee.com/api/optimize/G1NTw6yAi4RDUYbsU8csp/OEN05c1FFMIwbWFojGOpk_untitled-9.png)

Este é um exemplo básico de como criar um fluxo para buscar dados em um banco utilizando nosso conector.

:::hint{type="warning"}
Caso queira utilizar o [Tratamento de erros](docId\:S8tSKAoLYIISmaC7tCzHC) para este conector, o código do status sempre será 400.
:::

## Conclusão

A API Fluid Conector SQL/Mongo é uma ferramenta poderosa que oferece uma interface simplificada e padronizada para executar operações em bancos de dados SQL e MongoDB. Ao facilitar o acesso e manipulação de dados, ela permite que desenvolvedores realizem consultas e inserções de forma eficiente e segura.

Esta documentação fornece um guia detalhado sobre como fazer requisições, configurar conexões e criar fluxos de trabalho utilizando o conector. Ao seguir os passos descritos aqui, os usuários podem configurar facilmente suas conexões, definir operações e parametrizar argumentos para obter os resultados desejados.

Seja para consultas simples, inserções complexas ou operações avançadas como filtragem e ordenação, a API Fluid Conector SQL/Mongo simplifica o processo de interação com bancos de dados, tornando o desenvolvimento mais ágil e eficaz. Com uma abordagem clara e exemplos práticos, esperamos que esta documentação seja útil para todos os usuários que desejam aproveitar ao máximo os recursos oferecidos pelo conector.
