Dies hängt wirklich von Ihren Anforderungen an "Visualisierung" ab. Typischerweise sind die interessanteren visuellen Aspekte eines Diagramms für eine relationale Datenbank die Beziehungen auf hoher Ebene und Integritätsbedingungen (1:1, 1:viele, Primärschlüssel, Fremdschlüssel usw.).
MongoDB ist flexibel Schema, in dem Sinne, dass Dokumente innerhalb einer bestimmten Sammlung keinem vorgegebenen Format entsprechen müssen. Das bedeutet nicht, dass die zugrunde liegenden Daten nicht organisiert sein können ... nur, dass einer Sammlung kein einzelnes Schema auferlegt wird (wie es in einer traditionellen relationalen Datenbank der Fall wäre).
In MongoDB müssen viele der interessanten Details, die visualisiert werden sollen, analysiert werden, indem einige oder alle Dokumente in einer Sammlung untersucht werden ODER indem der Code überprüft wird.
Codeüberprüfung
Wenn Ihre Anwendung einen ODM (Object Document Mapper) wie Mongoose
verwendet (Node.js) oder Morphia
(Java) kann der Anwendungscode eine schnelle und beschreibende Ansicht des beabsichtigten Schemas (oder zumindest der neuesten Version des beabsichtigten Schemas) bereitstellen. Ein geeignetes Sprachdokumentationstool wie jsdoc
oder javadoc
kann hilfreich sein, um einen vernünftigen Überblick über Ihre Modellklassen zu erhalten. Sie müssen wahrscheinlich einige Dokumentationsanmerkungen hinzufügen, um die besten Ergebnisse zu erzielen.
Schemaanalyse
Die Schemaanalyse ist ein Brute-Force-Ansatz, bei dem die Daten betrachtet werden, um auf ein beobachtetes Schema zu schließen. Ein gängiger Ansatz dafür ist die Verwendung von Map/Reduce .
Es gibt ein paar verschiedene mongo
Schale
Helfer, die Ihnen eine Vorstellung von der allgemeinen Struktur von Sammlungen geben (z. B. Feld-/Datentypen und deren Abdeckung in den Quelldokumenten):
Diese sind nicht visuell (im grafischen Sinne), aber die Ergebnisse der Schemaanalyse bieten einen Einblick in die erwartete Form der Daten und häufige Variationen.
Beziehungen
Der MongoDB-Server unterstützt keine Fremdschlüsselbeziehungen, wodurch viele potenziell interessante visuelle Anmerkungen entfernt werden.
Es gibt einige unterschiedliche Client-Treiber-Ansätze zum Erstellen von Datenbankreferenzen (DBRefs)
, aber diese folgen eher Nutzungskonventionen als einer Serverfunktion. Um Beziehungen zwischen Sammlungen mithilfe von DBRefs zu ermitteln, müssten einige oder alle Dokumente in einer Sammlung gescannt werden. Der Rückschluss auf Beziehungen wird von keiner der beiden variety
unterstützt oder schema.js
noch.
Inhalt
Um eine bessere Vorstellung vom tatsächlichen Inhalt zu bekommen, können Sie eine der Admin-UIs ausprobieren .