8 puntos por GN⁺ 2024-07-08 | 1 comentarios | Compartir por WhatsApp
  • Pongo aprovecha el soporte de JSONB para tratar a PostgreSQL como una base de datos de documentos
    • JSONB almacena datos JSON en formato binario, mejorando el rendimiento y la eficiencia de almacenamiento
  • El formato binario de JSONB en PostgreSQL permite que los datos estén preanalizados, lo que posibilita operaciones de lectura y escritura más rápidas
    • JSONB admite opciones avanzadas de indexación como índices GIN y GiST, lo que mejora la velocidad de búsqueda
    • JSONB permite almacenar datos semiestructurados mientras se aprovechan las potentes capacidades de consulta de PostgreSQL
  • ¿Pongo es un ORM?
    • No. Se enfoca en manejar de forma eficaz las características de los datos documentales
    • Los ORM de Node.js pueden manejar JSONB, pero para consultas avanzadas es necesario usar JSONPath o funciones JSONB
    • Pongo se encarga de eso por ti
  • ¿Está listo para producción?
    • Actualmente es seguro usarlo, pero no es 100% compatible con MongoDB
    • Pongo es un proyecto nuevo, por lo que algunas funciones pueden faltar
    • Es un proyecto comunitario; si encuentras problemas, se recomienda ampliar el soporte o agregar cobertura de pruebas mediante issues de GitHub o Pull Request

Resumen de GN⁺

  • Pongo es una herramienta que usa PostgreSQL como base de datos documental y convierte la API de MongoDB en consultas de PostgreSQL
  • Aprovecha las ventajas de JSONB para mejorar el rendimiento y la eficiencia de almacenamiento
  • Soporta consultas avanzadas e indexación para ofrecer flexibilidad y consistencia
  • Pongo no es un ORM y se enfoca en manejar eficazmente las características de los datos documentales
  • Como es un proyecto nuevo, algunas funciones pueden faltar, pero puede ampliarse mediante contribuciones de la comunidad

1 comentarios

 
GN⁺ 2024-07-08
Comentarios en Hacker News
  • Agregaron Pongo a la sección de NoSQL
  • El modelo híbrido es la mejor opción. Los campos clave van como columnas normales, y las estructuras de datos dinámicas se mantienen en JSONB
  • Técnicamente está genial, pero al README le hace falta una sección de "por qué". Me pregunto si es porque quieren usar la API de Mongo o si quieren copiar código de un proyecto existente
    • Si se trata de reutilizar consultas de otro proyecto, la IA lo hace bastante bien
  • Usé un enfoque parecido al migrar un proyecto de Mongo a Postgres. El rendimiento mejoró mucho
    • En proyectos futuros planeo eliminar toda similitud con Mongo
  • Me pregunto si Pongo es compatible con Mongoose. Como la mayoría de los usuarios de Mongo usan Mongoose, si lo soportan podrían conseguir más usuarios
  • En noviembre de 2023 hice un tuit en broma sobre Pongo. Es una coincidencia divertida, pero podría hacerme pensar que puedo predecir el futuro
  • Uso mucho columnas JSONB. Son adecuadas para ciertas aplicaciones, pero aumentan la complejidad de las consultas y hacen perder formas de mejorar el rendimiento de consultas que sí se obtienen con un enfoque relacional
    • JSONB es útil, pero no debería hacerte renunciar a las ventajas de una base de datos relacional
  • Me pregunto cómo se compara con FerretDB
  • MongoDB ya ofrece desde hace años una funcionalidad equivalente al aislamiento serializable de Postgres. No sé qué quieren decir con "beneficios de consistencia fuerte"
  • La base de datos Oracle ya ofrecía desde hace años una API compatible con MongoDB