MongoDB is a NoSQL document database that’s gotten pretty popular over the past decade: more than a quarter of developers say they use it in some capacity. What makes Mongo and other NoSQL DBs attractive is flexibility; instead of being held to a rigid schema that scales vertically, you can evolve your schema as you grow and scale horizontally. MongoDB went public in 2017, and is worth more than $12B (!) today.

Document databases work through nested key-value pairs instead of relational tables and columns. You’re going to need to parse data for your frontend eventually, and with document DBs your data is already stored in the right format (give or take a .map or .reduce). Working with Mongo through the command line isn’t exactly a cake walk: this post will walk through the best GUIs available for reading from and writing to your MongoDB clusters.

The Mongo Shell Versus a MongoDB GUI


The most basic way to access MongoDB is through the mongo shell; you can use it to query, update data, and complete admin tasks. It’s included in the MongoDB Server installation, so you’re all set as long as you’re comfortable with shell commands. Traversing objects and writing long queries in the command line can get annoying fast, so using the shell is usually best for quick peeks or admin tasks.

> 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"
         },
         ...
       ]
     }
   ]
 },

It’s definitely possible to query your Mongo data exclusively from the command line, but if you’re working with even medium sized datasets, you’re probably going to want to look at using a GUI. MongoDB GUIs provide a user interface for your database that gives you the ability to visualize data and edit queries without the use of shell commands (or with them - more on that later).

The best MongoDB GUIs share similar features:

  • A visual query editor: Click or drag-and-drop elements to create queries.
  • Query autocomplete: Auto-suggestions for collections, fields, methods, and operators.
  • An aggregation framework: Build queries out step-by-step, test along the way, then export into usable code.
  • Server and query analytics: Insights into query and server performance.
  • Relational database to MongoDB data transfer: Automate tedious and error-prone data transfers between database types.

Below is a list of the best MongoDB GUIs that 2020 has to offer. Each one has features that set it apart from the rest. The best one for you will depend on the scope of your project, the features you need, and your budget.

MongoDB Compass


image-1-
(Image courtesy of MongoDB Compass GitHub Repository)

Overview

The creators of MongoDB (Mongo) have their own GUI called Compass. It’s platform-agnostic and provides a graphical view of your database without the need to use a query language. MongoDB recently announced that the fully featured Compass GUI is completely free for everyone to use. Plus, the repo is now open-source on GitHub.

Some notable MongoDB Compass features include:

  • Schema visualization: Compass visually displays your collections to help you better understand your datasets.
  • CRUD visual editor: Perform CRUD operations within the UI, no need to type queries.
  • Geospatial data: Create queries on map data using an intuitive UI with generated results in both graph and JSON document form.

Winning feature: Compass Plugins

One of the best features of the MongoDB Compass GUI is that it has an API for adding plugins. The Compass community has built tons of cool plugins that can generate data for testing, inspect database users, and even check the shard status of the database. If there’s a feature you want but a plugin isn’t available yet, you can build your own using their plugin template.

Robo 3T


robo3t
(Photo courtesy of Robo 3T blog)

Overview

Robo 3T is an open-source, platform-agnostic, lightweight GUI for MongoDB. Formerly known as Robomongo, the company was bought in 2017 by 3T Software Labs and rebranded (they also made it open source!).

The project continues to be developed and has 8K stars on Github. In that vein, one of the best parts of using this GUI is the large community of users. Loads of tutorials, guides, and forums are available if you get stuck – just search.

Some notable Robo 3T features include:

  • Code autocomplete: While Robo 3T doesn’t have the autocompleting prowess of IntelliShell (see Studio 3T below), it does have a useful runtime autocomplete feature that works through an internal virtual machine.
  • Fast UI: All operations are done asynchronously, which means the application will never block you from working by freezing up.

Winning feature: embedded Mongodb shell

Many of the MongoDB GUIs have emulated mongo shells, but this GUI has an embedded mongo shell. The embedded shell provides increased functionality over an emulated shell because emulators generally run on top of a provided API, whereas an embedded shell works directly with MongoDB.

Studio 3T


Screen-Shot-2020-05-22-at-5.56.18-PM
(Photo courtesy of Studio 3T)

Overview

Studio 3T, formerly MongoChef, is the robust, professional version of Robo 3T owned by the same parent company, 3T Software Labs. Studio 3T is more than just a MongoDB GUI: it’s also an IDE and client. There is no free version of this software (unless you count Robo 3T), and the Core pricing level starts at $149/year per user. Even then, the Core level lacks features that pricier ones have, like SQL import/export, SQL queries, and the schema explorer.

Some notable Studio 3T features include:

  • IntelliShell: A smart, built-in mongo shell with autocomplete that supports Javascript standard library functions, collection and field names, operators, and methods.
  • Three ways to view data: Once you have retrieved your data from the database, you can view it in three different formats:
    • Table View formats the data into rows and columns.
    • Tree View formats the data into expandable hierarchies.
    • JSON View formats your data as JSON documents.
  • Code generation: Export queries into Node.js, Python, Java, C#, PHP, Ruby, or the mongo shell language.
  • Data import: Support for data imports from SQL databases, Oracle, and Sybase.

Winning feature: four ways to query MongoDB and view data

Out of all MongoDB GUIs, Studio 3T provides the most ways to query your database. You can query using:

  1. SQL queries: Query MongoDB using the SQL query language (super cool!)
  2. The mongo shell: Built-in IntelliShell technology that provides robust autocomplete features
  3. The Aggregation Editor: For building up complicated queries
  4. The Visual Query Builder: A drag-and-drop editor for building out queries (fun fact: can be used side-by-side with IntelliShell)

Given this volume of query methods (including less “technical” ones), Studio 3T is usable for anyone, no matter their familiarity with document-based databases, query languages, or command lines.

NoSQLBooster


Screen-Shot-2020-05-22-at-6.00.30-PM

Overview

NoSQLBooster is a shell-centric GUI with a broad range of features that come with a paid license. The free tier is missing many of the features that make this GUI so great, like code completion and the visual query builder. NoSQLBooster does not work through a subscription model, so once you pay for a license, it’s yours forever (or until you want to update your version).

Some notable NoSQLBooster features include:

  • IntelliSense: Similar to Studio 3T’s IntelliShell, this language service appears as a tooltip while you type to suggest completions, methods, properties, variables, keywords, collection names, field names, and operators.
    • A notable part of IntelliSense is the built-in snippets that offer code completion for operations like SQL to MongoDB data conversions and date ranges. You can also create your own snippets to save time.
  • Interactive samples: In-app tutorials with prewritten queries and descriptions for learning how to use MongoDB.

Winning feature: NPM packages in the MongoDB shell script

The best feature of NoSQLBooster is the unique ability to add any NPM package into the MongoDB shell script. In fact, this GUI already comes with a number of useful and popular utility modules — like lodash, moment, bluebird, ShellJS, and math.js — in the global scope, ready to use.

Retool


image-2-

Overview

Retool lets you query and build internal tools on top of your MongoDB data without having to write the same repetitive, tedious code over and over again. It easily integrates with MongoDB and provides prebuilt, reusable drag-and-drop components for building out front-end tools. The tiered pricing model offers a free basic version that can be used for a small personal project, and paid versions get you custom React components and granular access controls.

Some notable Retool features include:

  • Schema inspection: Visually view your data.
  • Save and share queries: Keep your queries handy for multiple uses.
  • Turn your queries into useful tools: go from query to table, search, and button without writing frontend code.

Winning feature: Customizable front end for visualizing data

You can use Retool’s pre-built components—including tables, buttons, text inputs, and search bars—to not only view your data but do any CRUD operations you need to keep your business going. Once you connect your data sources, you design your frontend with their drag-and-drop component tool.

The Best MongoDB GUI for Your Project


As with any tool, the best MongoDB GUI for you depends on what you’re trying to accomplish.

If you want to completely avoid the command line, MongoDB’s Compass is probably the most fully featured and natively integrated GUI out there. If you want a simple application that has a well-supported community, Robo 3T is the best GUI. If you’re familiar with SQL and want to keep writing queries in everyone’s favorite query language™, NoSQLBooster is going to feel slick. If you’re looking to easily share queries or turn your queries into tools, check out Retool.