Collections Statistics Query history Query data
MongoDB is a popular NoSQL database designed for applications that need flexible, scalable, and high-performance storage. Unlike traditional relational databases, MongoDB stores data in a document-oriented format using JSON-like structures, making it ideal for handling unstructured data. With built-in features like sharding, replication, and high availability, MongoDB provides a powerful solution for managing large datasets in dynamic environments.
Azimutt is making the first database explorer targeted for real world databases: large, heterogeneous and messy 😅 If you ever looked for an Entity-Relationship diagram tool (ERD) or drew your database schema on a sheet or whiteboard, Azimutt is made for you. But it goes well beyond that with database documentation, cross-database data exploration and even linter and monitoring of your database.
As MongoDB has no formal schema, the MongoDB connector
iterate over all collections and fetch a sample of documents on each to infer its schema.
If collections have an implicit schema, it works really well. If they don't, well, it reflects that also 😬
You can look at what it does by looking at the getSchema
function in the
src/mongodb.ts file.
Azimutt not only handles flat tables but also has nested fields, making it quite good for JSON-like structure like in MongoDB.
If you stored several entities in the same collection using a field to identify them, the MongoDB connector is able to create several entities out of one collection if you specify this field name in the `discriminator` attribute in your database url.
MongoDB has no foreign keys in the database. Still you can reference entities by storing their ids. If you do, and follow a naming convention, Azimutt will suggest missing relations, improving a lot the exploration experience. If not, you can still add them manually in Azimutt using AML, this is not a fun work, but it's a good documentation investment ^^
How to use it #
Using the MongoDB connector in Azimutt is quite easy:
- Launch the Gateway, if needed (for the local one use
npx azimutt@latest gateway
) - Create a new project or add a source to an existing one
- Fill your MongoDB database url (ex:
mongodb://user:pass@localhost:27017/your_db
)
Here are more details about how Azimutt secure your data and especially your database url.
If you don't have a MongoDB database, you can launch one with Docker:
docker run --name mongo_sample -p 27017:27017 mongo:latest
And here is a sample script to populate it.
Here is what you can do with Azimutt: