A command-line tool to generate Entity-Relationship Diagrams (ERD) from MongoDB databases. This tool analyzes your MongoDB collections and generates visual diagrams in various formats (SVG, PNG, PDF, ASCII, or Mermaid syntax).
- 🔍 Connect to MongoDB databases and analyze collection structures
- 🔗 Detect relationships between collections
- 📊 Generate Mermaid ERD diagrams
- 🎨 Support for multiple output formats (SVG, PNG, PDF)
- 🎯 Customizable theme and styling
- 🔄 Collection filtering options
- 🔄 Environment variable support for sensitive data
npm install -g mongodb-erd-climongodb-erd --uri "mongodb://localhost:27017" --database "my_database" --output "diagram.svg"mongodb-erd \ --uri "mongodb+srv://..." \ --database "blog" \ --output "blog-erd.png" \ --format png \ --theme dark \ --include "posts,users,comments"| Option | Description | Required | Default |
|---|---|---|---|
--uri | MongoDB connection URI | Yes* | - |
--database | Database name | Yes* | - |
--output | Output file path | No | Auto-generated |
--format | Output format (svg, png, pdf, ascii, mermaid) | No | "svg" |
--theme | Diagram theme (light, dark) | No | "light" |
*Can be set via environment variables instead (see below). |
--include| Comma-separated list of collections to include | No | - | |--exclude| Comma-separated list of collections to exclude | No | - |
You can use environment variables instead of command line arguments for sensitive data:
# Set environment variables export MONGODB_URI="mongodb://localhost:27017" export MONGODB_DATABASE="my_database" # Run the tool mongodb-erdOr create a .env file in your project:
MONGODB_URI=mongodb://localhost:27017 MONGODB_DATABASE=my_databaseThe tool will check for environment variables before using command line arguments.
- Clone the repository:
git clone https://github.com/mlynn/mongodb-erd-cli.git cd mongodb-erd-cli- Install dependencies:
npm install- Run tests:
npm test- Run linting:
npm run lint- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.