Exploring document databases with Azimutt nested columns
by Loïc Knuchel on
Today is a great day for Azimutt. For years (1.5, actually ^^) it was built to explore relational databases using their explicit schema. Yet, many other databases exists, often called NoSQL, and they also could benefit a lot from better exploration tools.
Today, we bring document databases such as MongoDB and Couchbase as officially supported in Azimutt, as well as any JSON document one 🎉
As they don’t have any explicit schema, we fetch a sample from their collections and infer a schema from it. This being done, it’s very easy to replicate this with any other database using JSON based documents, or with JSON columns in relational databases, or even with any JSON object you may have in a file. Just tell us your needs, if they are not covered yet, we can easily adapt. Or even you, can do it directly 😉
This schema export is built in a NodeJS CLI, so if you have
npm installed on your machine, you can try it right away. For example:
npx azimutt export mongodb "mongodb://user:[email protected]" will export all the databases and collections from your MongoDB instance.
We built this CLI in a very modular way, so you can adapt it from its source code to inject any custom business logic, for example to define relations based on naming, add some documentation from an external source or even filter/transform schemas 🤘
Here is what it looks like using MongoDB sample data:
The second thing we are adding to Azimutt is nested columns. Relational databases have very flat schemas, but not document databases. In order to have a very good support of document database schemas we introduced nested columns. You can toggle them (visible or not), at several level, create relations from/to nested columns and also show/hide/sort them individually like normal ones.
Here is how it looks like:
MongoDB sample data
Couchbase sample data
Fine, relations in these schemas don’t make a lot of sense, they were just to try, but I’m sure you will have a great use of them.
We wanted to do that for a long time but had a lot of other things to do. We finally prioritized it thanks to some customers requests 🎉
If you need any improvement to Azimutt making your life easier, from little fancy UX changes to huge ones, we are really eager to hear you, to make Azimutt the best tool to explore and understand your database.
Other blog posts
You might be interested in these other articles
Explore PostgreSQL internals with SQL to extract a database schema!
Have you ever wondered how to list tables and columns on PostgreSQL? Or some even trickier operations such as getting tables without primary key? Here it is, let's dive into the internals and see what we can do.