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-cli
mongodb-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-erd
Or create a .env
file in your project:
MONGODB_URI=mongodb://localhost:27017
MONGODB_DATABASE=my_database
The 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.