Лучшие GUI для MongoDB в 2021 году

Kate

Administrator
Команда форума
MongoDB — это NoSQL-база данных, которую в том или ином виде используют более четверти разработчиков. MongoDB и другие NoSQL-базы данных привлекают своей гибкостью: вместо жесткой схемы и вертикального масштабирования, у вас есть возможность развивать схему постепенно и масштабироваться горизонтально. Компания MongoDB вышла на биржу в 2017 году и сегодня стоит более 17 миллиардов долларов.

Документные базы данных используют вместо реляционных таблиц и столбцов вложенные пары ключ-значение. Одно из преимущество такого подхода в том, что вам не нужно преобразовать данные для взаимодействия с фронтендом — данные уже хранятся в необходимом виде (плюс-минус .map или .reduce).

Работа с MongoDB через командную строку не всегда удобна, и в этом посте мы рассмотрим доступные графические инструменты.

Mongo Shell против GUI​

Самый простой способ работы с MongoDB — это mongo shell. Его можно использовать для запросов, изменения данных и администрирования.

MongoDB Shell входит в состав дистрибутива MongoDB Server, так что, если вам удобно работать с командной строкой, то у вас все готово. Но, скорее всего, обход объектов и написание длинных запросов в командной строке вам быстро наскучит, поэтому mongo shell обычно используется для административных задач и когда нужно что-то быстро посмотреть.

> use sample_analytics
switched to db sample_analytics
> db.transactions.find({})
{
"_id": "5ca4bbc7a2dd94ee581625eb",
"account_id": 50948,
"limit": 10000,
"products": [
"InvestmentStock",
"Commodity",
"Brokerage"
],
"transaction_info": [
{
"_id": "5ca4bbc1a2dd94ee58161e14",
"account_id": 50948,
"transaction_count": 6,
"bucket_start_date": "1991-05-08T00:00:00.000Z",
"bucket_end_date": "2015-10-13T00:00:00.000Z",
"transactions": [
{
"date": "2015-10-08T00:00:00.000Z",
"amount": 2311,
"transaction_code": "sell",
"symbol": "nflx",
"price": "104.9154457571513461289214319549500942230224609375",
"total": "242459.5951447767609039374292"
},
{
"date": "1995-12-15T00:00:00.000Z",
"amount": 4828,
"transaction_code": "buy",
"symbol": "aapl",
"price": "1.102632231847472166208490307326428592205047607421875",
"total": "5323.508415359595618454591204"
},
...
]
}
]
},
Безусловно, с Mongo можно работать исключительно из командной строки, но работа даже с наборами данных среднего размера становится некомфортной.

С помощью графических инструментов можно визуализировать данные и редактировать запросы без использования командной строки (или с ней — подробности ниже).

Во всех GUI-инструментах MongoDB есть сходные возможности:

  • Визуальный редактор запросов: возможность создания запросов с помощью drag-and-drop.
  • Автодополнение запроса (autocomplete): автоматические предложения для имен коллекций, полей, методов и операторов.
  • Aggregation framework: пошаговое создание и тестирование запросов, с последующим экспортом в код.
  • Аналитика сервера и запросов: анализ запросов и производительности сервера.
  • Импорт данных из реляционной базы данных в MongoDB: автоматизация утомительной и подверженной ошибкам передачи данных между разными типами баз данных.
Далее рассмотрим лучшие графические инструменты для MongoDB на 2021 год. У каждого из них есть свои особенности, выделяющие одни среди других. Выбор зависит от масштабов вашего проекта, необходимых функций и бюджета.

MongoDB Compass​

Скриншот взят из github-репозитория MongoDB Compass.
Скриншот взят из github-репозитория MongoDB Compass.

Описание​

У MongoDB есть "родной" многоплатформенный GUI под названием Compass. Он предоставляет возможность навигации по базе данных без написания запросов. Полнофункциональная версия Compass недавно стала полностью бесплатной, а исходный код доступен на GitHub.

Особенности MongoDB Compass:

  • Визуализация схемы: Compass визуализирует коллекции для удобного анализа данных.
  • Визуальный редактор для CRUD-операций: выполнение CRUD-операций без написания запросов.
  • Геопространственные данные: создание запросов к картографическим данным с помощью интуитивного интерфейса с представлением результатов как в виде графиков, так и в виде JSON-документов.
  • Валидация: удобный редактор правил JSON Schema с подсказками.

Главная фича — плагины​

Одна из особенностей MongoDB Compass — API для плагинов. Комьюнити Compass написало множество классных плагинов, которые могут генерировать тестовые данные, инспектировать пользователей базы данных и даже проверять статус шардов. Если вы нужного плагина нет, то можно написать свой, используя шаблон.

TablePlus​

image by TablePlus
image by TablePlus

Описание​

TablePlus — это современный нативный GUI-инструмент для реляционных баз данных, таких как MySQL, PostgreSQL, SQLite, и NoSQL-баз данных, таких как MongoDB. Команда TablePlus состоит из основателя Генри Фама (Henry Pham) и разработчика Ракуна Тая (Raccoon Thai). Команда, как и сообщество пользователей, довольно активны на GitHub.

Особенности TablePlus:

  • Настраиваемый интерфейс: настройка конфигурации и внешнего вида.
  • in-line редактирование: возможность редактирования данных и структуры таблиц одним щелчком мыши.

Главная фича — безопасность базы данных​

С помощью TablePlus можно подключиться к базе данных через защищенное соединение. Также TablePlus обеспечивает безопасное хранение учетных данных в хранилище ключей вашего устройства и поставляется со встроенным SSH. Помимо этого, есть поддержка многоступенчатой аутентификации и встроенный libssh.

Robo 3T​

Скриншот из блога Robo 3T.
Скриншот из блога Robo 3T.

Описание​

Robo 3T — это легковесный многоплатформенный GUI для MongoDB с открытым исходным кодом. Компания 3T Software Labs купила Robomongo в 2017 году и провела ребрендинг.

Проект продолжает развиваться и набрал восемь тысяч звезд на Github. Одно из преимуществ этого инструмента — большое комьюнити. Если возникнут проблемы, можно найти множество туториалов, руководств и форумов.

Особенности Robo 3T:

  • Автодополнение кода: хотя Robo 3T не обладает возможностями IntelliShell (см. Studio 3T ниже), у него есть полезная функция автодополнения в рантайме, которая работает через внутреннюю виртуальную машину.
  • Отзывчивый пользовательский интерфейс: все операции выполняются асинхронно, поэтому приложение никогда не будет зависать при длительных операциях.

Главная фича — встроенный MongoDB shell​

Многие из графических инструментов MongoDB эмулируют mongo shell, но здесь он встроенный. Встроенный mongo shell обладает большей функциональностью по сравнению с эмулируемым, поскольку эмуляторы обычно работают поверх предоставленного API, тогда как встроенный shell работает напрямую с MongoDB.

Studio 3T​

Скриншот с сайта Studio 3T.
Скриншот с сайта Studio 3T.

Описание​

Studio 3T, ранее MongoChef — более мощная, профессиональная версия Robo 3T, принадлежащая той же компании 3T Software Labs. Studio 3T — это больше, чем просто графический инструмент MongoDB, это также IDE и клиент. Бесплатной версии Studio 3T нет (если не считать Robo 3T), а цены начинаются с 149$ в год на пользователя (редакция Core). В редакции Core отсутствуют функции, которые есть в более дорогих версиях, такие как импорт / экспорт SQL, SQL-запросы и schema explorer.

Особенности Studio 3T:

  • IntelliShell: интеллектуальный встроенный mongo shell с автодополнением, поддерживающий функции стандартной библиотеки JavaScript, коллекции, поля, операторы и методы.
  • Три способа представления данных:
    • Табличный — в виде строк и столбцов.
    • Древовидный — в виде иерархии.
    • JSON — в виде JSON-документов.
  • Генерация кода: экспорт запросов в Node.js, Python, Java, C #, PHP, Ruby и mongo shell.
  • Импорт данных: импорт из SQL-баз данных, Oracle и Sybase.

Главная фича — четыре способа написания запросов к MongoDB​

Studio 3T предоставляет наибольшее количество вариантов создания запросов к базе данных. Вы можете выполнять запросы следующими способами:

  1. SQL-запросы: можно писать запросы к MongoDB с использованием SQL (круто!).
  2. Mongo shell: встроенная технология IntelliShell обеспечивает удобные функции автодополнения.
  3. Редактор агрегирования (Aggregation Editor): написание сложных запросов.
  4. Визуальный конструктор запросов: редактор с возможностью drag-and-drop для создания запросов (можно использовать вместе с IntelliShell)
Даже если вы не знакомы с документными базами данных, языками запросов и командной строкой, то все равно сможете использовать Studio 3T для работы с MongoDB.

NoSQLBooster​

28247bfe0384eb3ea596130e7038f177.png

Описание​

NoSQLBooster обладает большим набором функций в платной версии. В бесплатной многое из того, что делает этот GUI таким замечательным, отсутствует. Например, нет автодополнения кода и визуального построителя запросов. Лицензирования по подписке у NoSQLBooster нет, поэтому при покупке он останется вашим навсегда (или до тех пор, пока вы не захотите обновиться).

Особенности NoSQLBooster:

  • IntelliSense: аналогично IntelliShell, в Studio 3T при вводе текста отображаются подсказки, предлагая варианты завершения, методы, свойства, переменные, ключевые слова, имена коллекций, имена полей и операторы.
  • Интерактивные примеры: туториалы с заранее написанными запросами и описанием для изучения MongoDB.
Стоит также упомянуть встроенные сниппеты, предлагающие готовые фрагменты кода, например, для таких операций, как преобразование данных из SQL в MongoDB или для работы с диапазонами дат. Можно также создавать свои сниппеты.

Главная фича — NPM-пакеты в скриптах MongoDB shell​

Особенностью NoSQLBooster является уникальная возможность добавить любой NPM-пакет в скрипт MongoDB shell. Некоторые полезные и популярные пакеты, такие как lodash, moment, bluebird, ShellJS, и math.js уже входят в его состав и готовы к использованию.

HumongouS.io​

Скриншот с сайта HumongouS.io.
Скриншот с сайта HumongouS.io.

Описание​

HumongouS.io — это полностью онлайновый GUI, что позволяет удобно организовать совместную работу. Он подходит как для разработки, так и для администрирования. При его использовании вам не нужно сообщать реквизиты доступа к базе данных — вместо этого вы можете предоставить доступ только к приложению. И также можно получить доступ к данным с мобильных устройств.

Особенности:

  • Интеллектуальный поиск (smart filters): фильтры коллекций можно сохранять, что обеспечивает быстрый доступ к ним.
  • Диаграммы и дашборды: очень легко создать диаграммы и дашборды для анализа нужных вам данных.

Главная фича — настраиваемые виджеты​

С помощью виджетов можно настроить отображение данных и связать их с определенными коллекциями. Есть виджеты просмотра, форм и макетов. Виджеты просмотра (viewer widgets) позволяют отображать данные в более удобном виде, чем простые строки.

Виджеты форм (form widgets) — это, согласно документации HumongouS.io, "строительные блоки форм". Их можно настроить и сопоставить с любым типом данных в вашей базе данных.

Виджеты макета (layout widgets) — альтернатива стандартному табличному представлению, позволяют отображать специализированные данные.

NoSQL Manager​

Скриншот с сайта NoSQL Manager.
Скриншот с сайта NoSQL Manager.

Описание​

NoSQL Manager упрощает навигацию, просмотр и редактирование документов, а также позволяет устанавливать ограничения для максимальной производительности. Вы можете управлять коллекциями, индексами, а также пользователями, ролями и функциями. Поддерживается MongoDB Enterprise, MongoDB в Azure Cosmos DB и Amazon DocumentDB.

Особенности:

  • Поддержка различных конфигураций хостов: NoSQL Manager поддерживает наборы реплик (Replica Set), соединения к шардированным кластерам и автономным хостам.
  • Просмотр данных: просмотр и редактирование документов в виде дерева, таблиц и JSON.
  • SSH-туннелирование: NoSQL Manager может подключаться к MongoDB через SSH-туннель.
  • Импорт: импорт данных из MySQL и SQL Server.

Главная фича — автодополнение​

NoSQL Manager поставляется с MongoDB UI Shell с автодополнением кода, подсветкой синтаксиса и подсказками. Автодополнение подсказывает вам имена коллекций и методов в командах MongoDB Shell по мере ввода команд.

Retool​

d58c3df51d7632e1782b1153a064975f.png

Описание​

Retool — это платформа для разработки внутренних инструментов, на базе которой вы можете создать любой GUI для MongoDB (см. шаблон). Retool позволяет использовать drag-and-drop для построения форм без кодирования и подключаться к чему угодно с помощью REST или GraphQL, что означает возможность создания полнофункционального GUI для MongoDB и реализации любых CRUD-операций.

Особенности Retool:

  • Производительность: настройка работы Retool с MongoDB занимает всего несколько минут.
  • Анализ схемы: визуальное представление данных.
  • Сохранение запросов: запросы можно сохранять и использовать повторно.
  • Быстрое превращение запросов в готовые инструменты: от запроса до готового фронтенда пара кликов без написания кода.

Главная фича — настраиваемый интерфейс для визуализации данных​

Вы можете использовать готовые компоненты Retool (таблицы, кнопки, текстовые поля, поля для поиска) не только для просмотра ваших данных, но и для выполнения любых необходимых CRUD-операций. После настройки источника данных интерфейс создается с помощью drag-and-drop.

Лучший MongoDB GUI для вашего проекта​

Как и выбор любого другого инструмента, выбор GUI для MongoDB зависит от ваших целей и потребностей.

Если вы хотите полностью отказаться от командной строки, то Compass будет подходящим выбором. Если простое решение с большим комьюнити — Robo 3T. Если вы знакомы с SQL и хотите продолжать писать запросы на всеми любимом языке запросов, то подойдет NoSQLBooster. А если нужно превратить ваши запросы в готовые утилиты, то попробуйте Retool.

 
Сверху