O FerretDB 1.0 já foi lançado e estas são as suas novidades

FerretDB

O FerretDB foi fundado para se tornar o substituto de código aberto de fato para o MongoDB.

O lançamento do nova versão do projeto FerretDB 1.0, que permite substituir o DBMS orientado a documentos do MongoDB pelo PostgreSQL sem fazer alterações no código do aplicativo. O FerretDB é implementado como um servidor proxy que converte as chamadas do MongoDB em consultas SQL para o PostgreSQL, permitindo que você use o PostgreSQL como armazenamento real.

A versão 1.0 é marcada como a primeira versão estável pronta para uso geral. O público-alvo principal do FerretDB são usuários que não usam os recursos avançados do MongoDB em seus aplicativos, mas desejam usar uma pilha de software completamente aberta.

Em seu atual estágio de desenvolvimento, O FerretDB suporta um subconjunto de recursos do MongoDB que são mais comumente usados ​​em aplicações típicas. A necessidade de implementar o FerretDB pode surgir em conexão com a transição do MongoDB para uma licença SSPL não livre, que é baseada na licença AGPLv3, mas não é de código aberto, pois contém um requisito discriminatório para fornecer sob a licença SSPL não apenas o próprio código do aplicativo, mas também os códigos-fonte de todos os componentes envolvidos na prestação de serviços em nuvem.

MongoDB ocupa um nicho entre sistemas rápidos e escaláveis ​​que operam em dados chave/valor e DBMSs bancos de dados relacionais que são funcionais e fáceis de consultar. O MongoDB oferece suporte ao armazenamento de documentos em um formato semelhante ao JSON, possui uma linguagem bastante flexível para criar consultas, pode criar índices para vários atributos armazenados, fornece armazenamento eficiente de objetos binários grandes, oferece suporte a operações de registro para alterar e adicionar dados ao banco de dados, pode funcionar de acordo com o paradigma Map/Reduce, suporta replicação e construção de configurações tolerantes a falhas.

Principais novidades do FerretDB 1.0

Nesta nova versão que se apresenta, destaca-se que os comandos createIndexes e dropIndexes foram implementados para criar e colocar um ou mais índices em uma coleção, além do comando getMore foi implementado para exibir uma nova fatia do resultado buscado de executar comandos que retornam um cursor, como localizar e adicionar.

Outra das mudanças que se destacam na nova versão adicionado suporte para o operador de agregação $sum para calcular a soma dos valores do grupo, bem como o que foi adicionado suporte para os operadores $limit e $skip para limitar o número e pular documentos ao adicionar e que o suporte para o operador $count foi adicionado para contar documentos ao adicionar.

Além disso, também é observado que o suporte para o operador $unwind foi adicionado para analisar os campos do array em documentos recebidos e formar uma lista com um documento separado para cada elemento do array e também foi adicionado suporte parcial para os comandos collStats , dbStats e dataSize para obter estatísticas de coleta e banco de dados e o tamanho dos dados.

Do outras mudanças que se destacam da nova versão:

  • Iteradores agora são usados ​​para `sort`, `limit`, `skip` e `projection`
  • dependências de colisão
  • Aprimoramentos de rastreamento de recursos
  • Adicionados testes para o argumento `skip` de `find` e `count
  • Feche o iterador corretamente
  • Melhorias na inicialização de grandes números em dados de teste

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.

Os interessados ​​no código devem saber que ele é escrito em Go e distribuído sob a licença Apache 2.0.

E eles devem saber que a melhor maneira de testar o FerretDB é modificá-lo e executá-lo no host (Linux, macOS ou Windows) com PostgreSQL e outras dependências em execução em contêineres do Docker por meio do Docker Compose.

No Linux, o docker deve ser instalado no host. No macOS e no Windows, deve-se usar o Docker Desktop, enquanto no Windows, ele deve ser configurado para usar o WSL 2 sem nenhuma distribuição; todos os comandos devem ser executados no host.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.