Skip to main content

O que é o LiteDB?

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

Fontes: 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:

Para não deixar o artigo muito longo, aqui estão os links das classes criadas:
Pasta “Common”:
Config.cs
Constants.cs
ILiteDBContext.cs
LiteDBContext.cs
LiteDBExtensions.cs
Pasta “Controller”:
CustomerController.cs
Pasta “Models”:
Customer.cs
Pasta “Services”:
ILiteDBServices.cs
LiteDBService.cs

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

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

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:

Após a requisição POST, vamos verificar, por meio da requisição GET, se a informação foi realmente inserida:

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, basta informar o “Id”:

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

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:

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:

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ê tenha gostado. Dúvidas, sugestões ou críticas, deixe nos comentários.

Um grande abraço!

João Paulo de Castro Lima – Analista de Sistemas na BRQ

BRQ fale conosco