UNPKG

mongoose-database-schema

Version:

MongoDB database documentation generator with table schemas and relationships

131 lines (94 loc) 3.72 kB
# MongoDB Database Documentor A Node.js tool for automatically generating comprehensive documentation for MongoDB databases, including schema analysis and relationship detection. ## Features - **Schema Analysis**: Analyzes document structures and field types across collections - **Relationship Detection**: Automatically detects references between collections - **Multiple Output Formats**: Generate documentation in Markdown, JSON, or HTML - **Embedded Document Support**: Identifies embedded document relationships - **Index Information**: Documents database indexes - **Sample-based Analysis**: Configurable sample sizes for large collections ## Installation ### Global Installation (Recommended) ```bash npm install -g mongoose-database-schema ``` ### Local Installation ```bash npm install mongoose-database-schema ``` ## Usage ### Basic Usage (Global Installation) ```bash mongoose-database-schema -c "mongodb://localhost:27017" -d your_database_name ``` ### Basic Usage (Local Installation) ```bash npx mongoose-database-schema -c "mongodb://localhost:27017" -d your_database_name ``` ### Advanced Options ```bash # Generate JSON documentation mongoose-database-schema -c "mongodb://localhost:27017" -d mydb -o json # Analyze specific collections only mongoose-database-schema -c "mongodb://localhost:27017" -d mydb --collections "users,orders,products" # Use larger sample size for better accuracy mongoose-database-schema -c "mongodb://localhost:27017" -d mydb -s 500 # Generate HTML documentation mongoose-database-schema -c "mongodb://localhost:27017" -d mydb -o html ``` ### Command Line Options - `-c, --connection`: MongoDB connection string (required) - `-d, --database`: Database name (required) - `-o, --output`: Output format - markdown (default), json, or html - `-s, --sample-size`: Number of documents to sample per collection (default: 100) - `--collections`: Comma-separated list of specific collections to analyze ## Output The tool generates documentation in the `docs/` directory: ### Markdown Output (default) - `README.md`: Database overview - `[collection-name].md`: Individual collection documentation - `relationships.md`: Relationship summary ### JSON Output - `database-documentation.json`: Complete documentation in JSON format ### HTML Output - `database-documentation.html`: Single HTML file with all documentation ## Examples ### Connect to Local MongoDB ```bash mongoose-database-schema -c "mongodb://localhost:27017" -d ecommerce ``` ### Connect to MongoDB Atlas ```bash mongoose-database-schema -c "mongodb+srv://user:password@cluster.mongodb.net" -d production_db ``` ### Analyze Specific Collections ```bash mongoose-database-schema -c "mongodb://localhost:27017" -d myapp --collections "users,posts,comments" ``` ## What Gets Documented ### Collection Schema - Field names and types - Data type frequency across documents - Example values for each field - Nested document structures ### Relationships - Reference relationships (ObjectId and string-based) - One-to-many and many-to-one relationships - Embedded document relationships - Relationship confidence levels ### Database Metadata - Document counts per collection - Index information - Collection statistics ## Relationship Detection The tool automatically detects: - **ObjectId References**: Fields containing ObjectIds that reference other collections - **String References**: Fields following naming conventions (e.g., `user_id` referencing `users`) - **Array References**: Arrays containing references to other documents - **Embedded Documents**: Nested objects within documents ## Requirements - Node.js 14+ - MongoDB 4.0+ - Network access to MongoDB instance ## License MIT