npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

mongoose-database-schema

v1.0.4

Published

MongoDB database documentation generator with table schemas and relationships

Readme

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)

npm install -g mongoose-database-schema

Local Installation

npm install mongoose-database-schema

Usage

Basic Usage (Global Installation)

mongoose-database-schema -c "mongodb://localhost:27017" -d your_database_name

Basic Usage (Local Installation)

npx mongoose-database-schema -c "mongodb://localhost:27017" -d your_database_name

Advanced Options

# 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

mongoose-database-schema -c "mongodb://localhost:27017" -d ecommerce

Connect to MongoDB Atlas

mongoose-database-schema -c "mongodb+srv://user:[email protected]" -d production_db

Analyze Specific Collections

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