MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Strumento per creare una visualizzazione da MongoDB esistente

Questo dipende davvero dalle tue esigenze di "visualizzazione". Tipicamente, la maggior parte degli aspetti visivi più interessanti di un diagramma per un database relazionale sono le relazioni di alto livello e i vincoli di integrità (1:1, 1:molti, chiave primaria, chiavi esterne, ecc.).

MongoDB ha flessibile schema, nel senso che i documenti all'interno di una data collezione non devono rispettare un formato predeterminato. Ciò non significa che i dati sottostanti non possano avere una qualche organizzazione .. solo che non esiste uno schema unico imposto a una raccolta (come sarebbe il caso in un database relazionale tradizionale).

In MongoDB, molti dei dettagli interessanti da visualizzare richiederanno un'analisi ispezionando alcuni o tutti i documenti in una raccolta O esaminando il codice.

Revisione del codice

Se la tua applicazione utilizza un ODM (Object Document Mapper) come Mongoose (Node.js) o Morphia (Java), il codice dell'applicazione può fornire una visualizzazione rapida e descrittiva dello schema previsto (o almeno dell'ultima versione dello schema previsto). Uno strumento di documentazione del linguaggio appropriato come jsdoc o javadoc può essere utile per generare una panoramica ragionevole delle classi modello. Probabilmente dovrai aggiungere alcune annotazioni alla documentazione per ottenere i migliori risultati.

Analisi dello schema

L'analisi dello schema è un approccio più brutale che prevede l'analisi dei dati per dedurre uno schema osservato. Un approccio comune per questo è usare Map/Reduce .

Esistono diversi mongo conchiglia aiutanti che ti daranno un'idea della struttura generale delle raccolte (es. tipi di campo/dati e loro copertura nei documenti di origine):

Questi non sono visivi (in senso grafico), ma i risultati dell'analisi dello schema forniscono informazioni sulla forma prevista dei dati e sulle variazioni comuni.

Relazioni

Il server MongoDB non supporta le relazioni di chiavi esterne, il che rimuove molte annotazioni visive potenzialmente interessanti.

Esistono diversi approcci per i driver client per la creazione di Database References (DBRefs) , ma seguono convenzioni di utilizzo piuttosto che una funzione del server. Per determinare le relazioni tra le raccolte utilizzando DBRefs, alcuni o tutti i documenti di una raccolta dovrebbero essere scansionati. L'inferenza delle relazioni non è supportata da variety o schema.js ancora.

Contenuto

Per avere un'idea migliore del contenuto effettivo, puoi provare una delle interfaccia utente di amministrazione .