> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lumi.new/llms.txt
> Use this file to discover all available pages before exploring further.

# Bancos de dados

> Gerenciando os dados da sua web.

No Lumi, **dados** são as informações estruturadas que alimentam a funcionalidade dinâmica do seu aplicativo, incluindo usuários, conteúdo, pedidos e muito mais. Essas informações são organizadas em **tabelas**, que funcionam de forma semelhante a um banco de dados ou planilha. Cada tabela consiste em **campos** (colunas), e cada campo contém um tipo específico de informação.

## Trabalhando com dados

### Como adicionar um banco de dados ao seu projeto.

Geralmente, o Lumi analisará automaticamente suas necessidades e adicionará esta função quando um banco de dados for necessário. Você também pode enfatizar isso no prompt, como "Crie um sistema de gerenciamento de pedidos com um banco de dados para armazenar os dados dos pedidos."

### Adicionar um registro manualmente

<img src="https://mintcdn.com/blockdance/ynWgEA-zeP9dMZPg/images/4.gif?s=75cbccfd591bb323b1fbd898803601df" alt="4 Gi" width="1276" height="720" data-path="images/4.gif" />

<Steps>
  <Step title="Navegue até a sua tabela">
    Vá para Workspace → Dados e selecione a tabela à qual você deseja adicionar dados.
  </Step>

  <Step title="Adicionar um novo registro">
    Clique no botão “Adicionar” e preencha os campos para o novo registro.
  </Step>
</Steps>

<Tip>
  **Dica:** Para uma experiência mais amigável, você pode pedir ao chat para construir um formulário dentro do seu aplicativo, permitindo que você adicione novos itens dinamicamente.
</Tip>

### Editar um registro manualmente

<img src="https://mintcdn.com/blockdance/ynWgEA-zeP9dMZPg/images/5.gif?s=5b00a080da6a7e5c3a232793e125aa4b" alt="5 Gi" width="1276" height="720" data-path="images/5.gif" />

<Steps>
  <Step title="Navegue até a sua tabela">
    Vá para Workspace → Dados e selecione a tabela que contém o registro que você deseja editar.
  </Step>

  <Step title="Editar o registro">
    Clique no ícone de ✒️ Caneta para o registro desejado e faça suas alterações.
  </Step>
</Steps>

### Exclusão e operações em lote

* Para excluir um único registro

<img src="https://mintcdn.com/blockdance/ynWgEA-zeP9dMZPg/images/6.gif?s=62b77edc88b3b420fc6287c79d218ede" alt="6 Gi" width="1276" height="720" data-path="images/6.gif" />

<Steps>
  <Step title="Navegue até a sua tabela">
    Vá para Workspace → Dados e selecione a tabela que contém o registro que você deseja excluir.
  </Step>

  <Step title="Excluir o registro">
    Clique no ícone de 🗑 Lixeira para o registro que você deseja excluir.
  </Step>
</Steps>

* Para fazer uma exclusão em lote

<img src="https://mintcdn.com/blockdance/ynWgEA-zeP9dMZPg/images/7.gif?s=0070d8d21b1fb977381a83c8c44b0486" alt="7 Gi" width="1276" height="720" data-path="images/7.gif" />

<Steps>
  <Step title="Navegue até a sua tabela">
    Vá para Workspace → Dados e selecione a tabela da qual você deseja excluir registros.
  </Step>

  <Step title="Selecionar e excluir registros">
    Selecione as caixas de seleção dos registros que você deseja remover e, em seguida, clique no botão "Excluir" que aparece perto da contagem de seleção.
  </Step>
</Steps>

<Warning>
  **Aviso:** Tenha cuidado, pois a exclusão é irreversível
</Warning>

## Tipos de campo suportados

1. Tipos de dados básicos

* **String**: Uma string codificada em UTF-8 usada para armazenar dados de texto.
* **Integer**: Inclui inteiros de 32 e 64 bits para armazenar valores inteiros.
* **Double**: Números de ponto flutuante de 64 bits para armazenar números decimais ou números grandes.
* **Boolean**: Armazena valores lógicos verdadeiro ou falso.
* **Null**: Representa um valor nulo ou um campo inexistente.

2. Tipos de dados complexos

* **Array**: Uma coleção ordenada de elementos que pode conter diferentes tipos de dados.
* **Object (Embedded Document)**: Uma coleção de pares chave-valor que suporta estruturas aninhadas.
* **Date**: Armazena data e hora representadas como milissegundos UTC.

3. Tipos de dados especiais

* **ObjectId**: Um identificador único de 12 bytes, usado por padrão para o campo \_id de um documento.
* **Binary Data**: Armazena dados binários (como imagens, arquivos).
* **Regular Expression**: Armazena expressões regulares para correspondência de texto.
* **JavaScript**: Suporta o armazenamento e a execução de código JavaScript.

4. Tipos de dados estendidos

* **Timestamp**: Um carimbo de data/hora de 64 bits onde os primeiros 32 bits são segundos e os últimos 32 bits são nanossegundos, usado para registrar tempos de operação.
* **Decimal128**: Um número decimal de alta precisão de 128 bits, adequado para cálculos financeiros.
* **GeoJSON**: Armazena dados geoespaciais.

## Segurança e permissões de tabela

Cada tabela inclui suas próprias configurações de segurança para controlar o acesso aos dados:

* **Acesso de Leitura:** Define quem tem permissão para visualizar os registros dentro da tabela.
* **Acesso de Escrita/Exclusão:** Determina quem pode criar, atualizar ou excluir registros.

<img src="https://mintcdn.com/blockdance/ynWgEA-zeP9dMZPg/images/image(44).png?fit=max&auto=format&n=ynWgEA-zeP9dMZPg&q=85&s=ab5d3abaf0caa231d6382f8660faf92e" alt="Image(44) Pn" width="2082" height="1236" data-path="images/image(44).png" />
