Подтвердить что ты не робот

Как я могу обнаружить структуру базы данных mongo

У меня есть база данных Mongo, которую я не создавал или не архитектор, есть ли хороший способ для интроспекции db или распечатки того, что структура должна начать получать дескриптор того, какие типы данных хранятся, как данные типы вложены и т.д.

4b9b3361

Ответ 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 не требуется) и имеет больше возможностей (гистограммы, наиболее часто используемые значения и т.д.).

https://github.com/mongoeye/mongoeye

Ответ 7

Несколько дней назад я нашел GUI-клиент MongoDB Compass с некоторыми приятными визуализацией. См. обзор продукта. Это происходит непосредственно от людей монгодба и в соответствии с их документом:

MongoDB Compass предназначен для того, чтобы пользователи могли легко анализировать и понимать содержимое своих коллекций данных в MongoDB...