8 pontos por GN⁺ 2024-07-08 | 1 comentários | Compartilhar no WhatsApp
  • O Pongo usa o suporte a JSONB para tratar o PostgreSQL como um banco de dados de documentos
    • O JSONB armazena dados JSON em formato binário, melhorando o desempenho e a eficiência de armazenamento
  • O formato binário do JSONB no PostgreSQL mantém os dados pré-analisados, permitindo operações de leitura e escrita mais rápidas
    • O JSONB oferece suporte a opções avançadas de indexação, como índices GIN e GiST, melhorando a velocidade de busca
    • O JSONB permite armazenar dados semiestruturados enquanto usa os poderosos recursos de consulta do PostgreSQL
  • O Pongo é um ORM?
    • Não. O foco está em lidar de forma eficaz com as características dos dados de documentos
    • ORMs de Node.js conseguem lidar com JSONB, mas em consultas avançadas é preciso usar JSONPath ou funções JSONB
    • O Pongo cuida disso no lugar do usuário
  • Está pronto para produção?
    • No momento é seguro de usar, mas não é 100% compatível com o MongoDB
    • O Pongo é um projeto novo, então alguns recursos podem estar faltando
    • Como é um projeto da comunidade, se você encontrar problemas, é recomendado ampliar o suporte ou adicionar cobertura de testes via issue no GH ou Pull Request

Resumo do GN⁺

  • O Pongo é uma ferramenta que usa o PostgreSQL como banco de dados de documentos e converte a API do MongoDB em consultas PostgreSQL
  • Aproveita as vantagens do JSONB para melhorar desempenho e eficiência de armazenamento
  • Oferece suporte a consultas avançadas e indexação, proporcionando flexibilidade e consistência
  • O Pongo não é um ORM e foca em lidar de forma eficaz com as características dos dados de documentos
  • Como é um projeto novo, alguns recursos podem estar faltando, mas ele pode evoluir com contribuições da comunidade

1 comentários

 
GN⁺ 2024-07-08
Comentários no Hacker News
  • Adicionaram o Pongo à seção NoSQL
  • O modelo híbrido é a melhor escolha. Campos centrais ficam em colunas normais, enquanto estruturas de dados dinâmicas são mantidas em JSONB
  • Tecnicamente é legal, mas falta uma seção de "por quê" no README. Fico curioso se é porque querem usar a API do Mongo ou porque querem copiar código de projetos existentes
    • Se a ideia for reutilizar queries de outros projetos, a IA faz isso muito bem
  • Usei uma abordagem parecida ao migrar um projeto de Mongo para Postgres. O desempenho melhorou bastante
    • Em projetos futuros, pretendo remover toda semelhança com o Mongo
  • Fico curioso se o Pongo é compatível com o Mongoose. Como a maioria dos usuários de Mongo usa Mongoose, dar suporte a isso atrairia mais usuários
  • Em novembro de 2023, fiz um tweet de brincadeira sobre o Pongo. É uma coincidência divertida, mas vou achar que consigo prever o futuro
  • Uso bastante colunas JSONB. Isso se encaixa bem em certas aplicações, mas aumenta a complexidade das queries e faz você perder formas de melhorar o desempenho de consultas que uma abordagem relacional oferece
    • JSONB é útil, mas não se deve abrir mão das vantagens de um banco de dados relacional
  • Fico curioso sobre como isso se compara ao FerretDB
  • O MongoDB já oferece há alguns anos algo equivalente ao serializable isolation do Postgres. Não entendo o que querem dizer com "benefícios de consistência forte"
  • O banco de dados Oracle já oferece uma API compatível com MongoDB há alguns anos