8 Punkte von GN⁺ 2024-07-08 | 1 Kommentare | Auf WhatsApp teilen
  • Pongo nutzt die JSONB-Unterstützung, um PostgreSQL als Dokumentendatenbank zu behandeln
    • JSONB speichert JSON-Daten im Binärformat und verbessert dadurch Leistung und Speichereffizienz
  • Das Binärformat von PostgreSQL JSONB ist vorab geparst und ermöglicht dadurch schnelle Lese- und Schreibvorgänge
    • JSONB unterstützt fortgeschrittene Indexierungsoptionen wie GIN- und GiST-Indizes und verbessert so die Suchgeschwindigkeit
    • Mit JSONB lassen sich semistrukturierte Daten speichern und gleichzeitig die leistungsfähigen Query-Funktionen von PostgreSQL nutzen
  • Ist Pongo ein ORM?
    • Nein. Der Fokus liegt darauf, die Eigenschaften von Dokumentdaten effektiv zu verarbeiten
    • Node.js-ORMs können JSONB verarbeiten, aber für fortgeschrittene Abfragen müssen JSONPath oder JSONB-Funktionen verwendet werden
    • Pongo übernimmt das stattdessen
  • Ist es bereit für den produktiven Einsatz?
    • Aktuell sicher nutzbar, aber nicht zu 100 % mit MongoDB kompatibel
    • Pongo ist ein neues Projekt, daher können einige Funktionen fehlen
    • Es ist ein Community-Projekt; wenn du Probleme findest, wird empfohlen, den Support über GH-Issues oder Pull Requests zu erweitern oder die Testabdeckung zu verbessern

Zusammenfassung von GN⁺

  • Pongo ist ein Tool, das PostgreSQL als Dokumentendatenbank verwendet und die MongoDB-API in PostgreSQL-Abfragen umwandelt
  • Es nutzt die Vorteile von JSONB, um Leistung und Speichereffizienz zu verbessern
  • Es unterstützt fortgeschrittene Abfragen und Indexierung und bietet damit Flexibilität und Konsistenz
  • Pongo ist kein ORM und konzentriert sich darauf, die Eigenschaften von Dokumentdaten effektiv zu verarbeiten
  • Als neues Projekt können einige Funktionen fehlen, es lässt sich jedoch durch Beiträge aus der Community erweitern

1 Kommentare

 
GN⁺ 2024-07-08
Hacker-News-Kommentare
  • Pongo zum NoSQL-Bereich hinzugefügt
  • Ein Hybridmodell ist die beste Wahl. Kernfelder als normale Spalten, dynamische Datenstrukturen in JSONB
  • Technisch cool, aber im README braucht es einen Abschnitt "Warum". Ich frage mich, ob es darum geht, die Mongo-API zu nutzen, oder ob man Code aus bestehenden Projekten kopieren möchte
    • Wenn es um die Wiederverwendung von Queries aus anderen Projekten geht, leistet AI ziemlich gute Arbeit
  • Ich habe einen ähnlichen Ansatz verwendet, als ich ein Projekt von Mongo nach Postgres migriert habe. Die Performance hat sich stark verbessert
    • In künftigen Projekten plane ich, alle Ähnlichkeiten mit Mongo zu entfernen
  • Ich frage mich, ob Pongo mit Mongoose kompatibel ist. Da die meisten Mongo-Nutzer Mongoose verwenden, würde eine Unterstützung dafür vermutlich mehr Nutzer bringen
  • Ich habe im November 2023 einen scherzhaften Tweet über Pongo gepostet. Ein lustiger Zufall, aber ich werde wohl denken, dass ich die Zukunft vorhersagen kann
  • Ich nutze häufig JSONB-Spalten. Das passt gut zu bestimmten Anwendungen, erhöht aber die Komplexität der Queries und nimmt einem Möglichkeiten, die Query-Performance zu verbessern, die man mit einem relationalen Ansatz hätte
    • JSONB ist nützlich, aber man sollte die Vorteile einer relationalen Datenbank nicht aufgeben
  • Ich frage mich, wie es im Vergleich zu FerretDB abschneidet
  • MongoDB unterstützt seit einigen Jahren Funktionen, die der serializable isolation von Postgres entsprechen. Ich weiß nicht, was mit den "Vorteilen starker Konsistenz" gemeint ist
  • Die Oracle-Datenbank bietet ebenfalls seit einigen Jahren eine MongoDB-kompatible API