← Back to list

LiteDB — Banco de dados NoSQL Brasileiro

João Paulo · 2021-05-06 10:50 · 5 claps · 3.4 min read
#nosql #c-sharp-programming #brasil #litedb
Open on Medium ↗
Wiki topics: 💻 · Programming

LiteDB — Banco de dados NoSQL Brasileiro

Imagem retirada do site litedb.org

Imagem retirada do site litedb.org

Overview

O LiteDb é um banco de dados NoSql desenvolvido e mantido pelos brasileiros Mauricio David, Cassiano Sombrio e Leonardo Nascimento.

Features

  • Não necessita de um servidor de documentos NoSql
  • Possui uma API simples muito semelhante ao do MongoDb
  • Suporte para Portable UWP/PCL
  • Recuperação de dados após falha de gravação
  • Criptografia de arquivo de dados usando criptografia DES (AES)
  • Transações ACID (atomicidade, consistência, isolamento e durabilidade)
  • Recuperação de dados após falha de gravação (journal mode)
  • Mapeie suas classes POCO para o BsonDocument usando atributos ou usando Fluent Mapper API
  • Armazenar arquivos e dados de fluxo (como GridFS no MongoDB)
  • Armazenamento de arquivos de dados simples (como SQLite)
  • Indexação de campos dos documentos para pesquisa rápida (até 16 índices por coleção)
  • Suporte a consultas LINQ
  • Shell de comando

Fonte: Blog Raphael Cardoso e LiteDB

Setup

Baixe e instale o .NET 5

Criando uma API integrada com o LiteDB

Para criar um projeto Web API, basta digitar o seguinte comando:

dotnet new webapi

Após a criação do projeto, iremos adicionar o seguinte pacote:

dotnet add package LiteDB --version 5.0.10

Agora, vamos adicionar as seguintes classes para que o nosso CRUD funcione:

Estrutura do Projeto

Estrutura do Projeto

Para não deixar o artigo muito longo, aqui está os links das classes criadas: Pasta “Common”:

Repare que a classe “LiteDBExtensions.cs”, está sendo usada para facilitar a manutenção e legibilidade do código.

Classe LiteDBExtensions

Classe LiteDBExtensions

Esses dois métodos de extensão criados, são utilizandos dentro da classe “Startup.cs”.

Método ConfigureServices da classe Startup

Método ConfigureServices da classe Startup

Testando nossos endpoints

Primeiro, vamos iniciar a nossa API através do comando:

dotnet run

Agora, vamos fazer um requisição POST para inserir uma informação em nosso banco de dados:

Método POST

Método POST

Postman POST

Postman POST

Postman retorno

Postman retorno

Após a requisição POST, vamos verificar, através da requisição GET se a informação foi, realmente, inserida

Método GET

Método GET

Postman GET

Postman GET

Postman retorno

Postman retorno

Repare que este método retorna todas as informações, pois não foi especificado um “Id” na hora da requisição. Para retornar um cadastro específico, bastamos informar o “Id”

Método GET/ID

Método GET/ID

Postman GET/ID

Postman GET/ID

Postman retorno

Postman retorno

Pronto! Temos nosso primeiro cadastro realizado. Se quisermos alterá-lo ou excluí-lo, temos um endpoint para cada função.

Método PUT

Método PUT

Postman PUT

Postman PUT

Postman Retorno

Postman Retorno

Método DELETE

Método DELETE

Postman DELETE

Postman DELETE

Postman retorno

Postman retorno

Mas então, onde as informações estão sendo salvas? As informações são salvas em um arquivo “.db”, localizado dentro do seu projeto

Arquivos “nameofDb.db”

Arquivos “nameofDb.db”

As classes de “services” e “context”, fazem o trabalho de buscar e inserir as informações dentro do arquivo.

O nome do arquivo é definido da seguinte maneira:

Caminho para o arquivos

Caminho para o arquivos

Conclusão

Como podemos perceber, o LiteDB pode ser usado em diversas situações e projetos. Cabe a você decidir onde e quando usá-lo.

Espero que vocês tenham gostado. Dúvidas, sugestões ou críticas deixem nas Issues.

Um grande abraço!


메타데이터
post_id
736c9a87a2d3
slug
litedb-banco-de-dados-nosql-brasileiro-736c9a87a2d3
url
https://medium.com/@j-paulo-15/litedb-banco-de-dados-nosql-brasileiro-736c9a87a2d3
canonical_url
https://medium.com/@j-paulo-15/litedb-banco-de-dados-nosql-brasileiro-736c9a87a2d3
author_url
https://medium.com/@j-paulo-15
status
ok
fetched_at
2026-07-28 08:01:42