У меня есть база данных Mongo, которую я не создавал или не архитектор, есть ли хороший способ для интроспекции db или распечатки того, что структура должна начать получать дескриптор того, какие типы данных хранятся, как данные типы вложены и т.д.
Как я могу обнаружить структуру базы данных mongo
Ответ 1
На самом деле есть инструмент, который поможет вам здесь назвать Variety:
http://blog.mongodb.org/post/21923016898/meet-variety-a-schema-analyzer-for-mongodb
Здесь вы можете просмотреть репозиторий Github: https://github.com/variety/variety
Я должен предупредить вас, что:
- Он использует MR для выполнения своих задач.
- Он использует некоторые другие запросы, которые могут привести к тому, что производственная установка будет почти остановлена с точки зрения производительности.
Как таковой, я рекомендую вам запустить это на сервере разработки или скрытом node реплики или что-то в этом роде.
В зависимости от размера и глубины ваших документов это может занять очень много времени, чтобы понять грубую структуру вашей базы данных, но в конечном итоге это даст.
Ответ 2
Просто запросите базу данных, запустив следующие команды в оболочке 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
Затем вы сможете изучить структуру документа.
Ответ 3
Это напечатает имя и его тип
var schematodo = db.collection_name.findOne()
for (var key in schematodo) { print (key, typeof key) ; }
Ответ 4
Я бы рекомендовал ограничить набор результатов, а не выдавать неограниченную команду find.
use mydb
db.collectionName.find().limit(10)
var z = db.collectionName.find().limit(10)
Object.keys(z[0])
Object.keys(z[1])
Это поможет вам понять структуру вашей базы данных или ее отсутствие.
Ответ 5
Это инструмент с открытым исходным кодом, который я, вместе с моим другом, создал - https://pypi.python.org/pypi/mongoschema/
Это библиотека Python с довольно простым использованием. Вы можете попробовать (даже внести свой вклад).
Ответ 6
Один из вариантов заключается в использовании Mongoeye. Это инструмент с открытым исходным кодом, похожий на Variety.
Отличие состоит в том, что Mongoeye является автономной программой (Mongo Shell не требуется) и имеет больше возможностей (гистограммы, наиболее часто используемые значения и т.д.).
Ответ 7
Несколько дней назад я нашел GUI-клиент MongoDB Compass с некоторыми приятными визуализацией. См. обзор продукта. Это происходит непосредственно от людей монгодба и в соответствии с их документом:
MongoDB Compass предназначен для того, чтобы пользователи могли легко анализировать и понимать содержимое своих коллекций данных в MongoDB...