[Перевод] Лучшие GUI для MongoDB в 2021 году

image-loader.svg

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 TablePlusimage 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

image-loader.svg

Описание

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

image-loader.svg

Описание

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.

Материал подготовлен в рамках курса «NoSQL».

Всех желающих приглашаем на открытый урок «Отказоустойчивое Key Value хранилище ETCD». На занятии познакомимся с etcd и разберем спектр ее применения.
Краткое содержание:
— алгоритм Raft;
— отличия etcd от прочих аналогичных решений;
— основные моменты установки и настройки кластера etcd;
— бэкап и репликация кластера.
В результате получим развернутый кластер.
>> РЕГИСТРАЦИЯ

© Habrahabr.ru