Dit hangt echt af van uw vereisten voor "visualisatie". Meestal zijn de meest interessante visuele aspecten van een diagram voor een relationele database de relaties op hoog niveau en integriteitsbeperkingen (1:1, 1:veel, primaire sleutel, externe sleutels, enz.).
MongoDB heeft flexibele schema, in die zin dat documenten binnen een bepaalde collectie niet aan een vooraf bepaald formaat hoeven te voldoen. Dat betekent niet dat de onderliggende gegevens geen organisatie kunnen hebben.. alleen dat er geen enkel schema wordt opgelegd aan een verzameling (zoals het geval zou zijn in een traditionele relationele database).
In MongoDB zullen veel van de interessante details om te visualiseren moeten worden geanalyseerd door enkele of alle documenten in een verzameling te inspecteren OF door de code te bekijken.
Codebeoordeling
Als uw toepassing een ODM (Object Document Mapper) gebruikt, zoals Mongoose
(Node.js) of Morphia
(Java), kan de toepassingscode een snel en beschrijvend beeld geven van het beoogde schema (of in ieder geval de laatste versie van het beoogde schema). Een geschikte taaldocumentatietool zoals jsdoc
of javadoc
kan nuttig zijn om een redelijk overzicht van uw modelklassen te genereren. U zult waarschijnlijk enkele annotaties bij de documentatie moeten toevoegen voor de beste resultaten.
Schema-analyse
Schema-analyse is een meer brute krachtbenadering waarbij naar de gegevens wordt gekeken om een waargenomen schema af te leiden. Een gebruikelijke benadering hiervoor is het gebruik van Map/Reduce .
Er zijn een paar verschillende mongo
schelp
helpers die u een idee geven van de algemene structuur van collecties (bijv. veld-/gegevenstypen en hun dekking in de brondocumenten):
Deze zijn niet visueel (in grafische zin), maar de resultaten van de schemaanalyse geven wel inzicht in de verwachte vorm van de gegevens en veelvoorkomende variaties.
Relaties
De MongoDB-server biedt geen ondersteuning voor externe-sleutelrelaties, waardoor veel potentieel interessante visuele annotaties worden verwijderd.
Er zijn verschillende benaderingen van clientstuurprogramma's voor het maken van Database References (DBRefs)
, maar deze volgen gebruiksconventies in plaats van een serverfunctie. Om relaties tussen collecties te bepalen met behulp van DBref's, zouden sommige of alle documenten in een collectie moeten worden gescand. Inferentie van relaties wordt niet ondersteund door variety
of schema.js
nog niet.
Inhoud
Om een beter idee te krijgen van de daadwerkelijke inhoud, kunt u een van de Admin UI's proberen .