J'ai une base de données Mongo que je n'ai pas créée ou architectée, existe-t-il un bon moyen d'introspecter la base de données ou d'imprimer la structure pour commencer à obtenir une idée des types de données stockées, de la manière dont les types de données sont imbriqués , etc?
Il existe en fait un outil pour vous aider ici appelé Variété:
http://blog.mongodb.org/post/21923016898/meet-variety-a-schema-analyzer-for-mongodb
Vous pouvez voir le dépôt Github pour cela ici: https://github.com/variety/variety
Je devrais probablement vous avertir que:
En tant que tel, je vous recommande de l'exécuter sur un serveur de développement ou un nœud caché d'une réplique ou quelque chose.
Selon la taille et la profondeur de vos documents, cela peut prendre beaucoup de temps pour comprendre la structure approximative de votre base de données, mais cela finira par en donner un.
Il suffit d'interroger la base de données en exécutant les commandes suivantes dans le shell mongo:
use mydb //this switches to the database you want to query
show collections //this command will list all collections in the database
db.collectionName.find().pretty() //this will show all documents in the database in a readable format; do the same for each collection in the database
Vous devriez alors pouvoir examiner la structure du document.
Ceci affichera le nom et son type
var schematodo = db.collection_name.findOne()
for (var key in schematodo) { print (key, typeof key) ; }
Je recommanderais de limiter l'ensemble de résultats plutôt que d'émettre une commande find sans restriction.
use mydb
db.collectionName.find().limit(10)
var z = db.collectionName.find().limit(10)
Object.keys(z[0])
Object.keys(z[1])
Cela vous aidera à comprendre la structure de votre base de données ou son absence.
Il s'agit d'un outil open source que j'ai créé avec mon ami - https://pypi.python.org/pypi/mongoschema/
C'est une bibliothèque Python avec une utilisation assez simple. Vous pouvez l'essayer (même contribuer).
Une option consiste à utiliser le Mongoeye . Il s'agit d'un outil open source similaire à Variety.
La différence est que Mongoeye est un programme autonome (Mongo Shell n'est pas requis) et possède plus de fonctionnalités (histogrammes, valeurs les plus fréquentes, etc.).
Il y a quelques jours, j'ai trouvé un client GUI MongoDB Compass avec quelques belles visualisations. Voir aperçu produit . Il vient directement du peuple mongodb et selon leur doc:
MongoDB Compass est conçu pour permettre aux utilisateurs d'analyser et de comprendre facilement le contenu de leurs collections de données dans MongoDB ...
Vous pouvez utiliser l'outil de MongoDB mongodump
. Lors de son exécution, un dossier dump
est créé dans le répertoire à partir duquel vous avez exécuté mongodump. Dans ce dossier, il y a plusieurs dossiers qui correspondent aux bases de données dans MongDB, et il y a des sous-dossiers qui correspondent aux collections et des fichiers qui correspondent aux documents.
Cette méthode est la meilleure que je connaisse, car vous pouvez également distinguer le schéma de collections vides.