Awesome MongoDB

# Awesome MongoDB

> A curated list of awesome MongoDB resources, libraries, tools and applications

Inspired by the awesome list thing. Feel free to improve this list by contributing!

## Table of Contents

- Resources
  - Documentation
  - Articles
  - Books
  - Talks
  - Tutorials
  - More
- Libraries
  - Ballerina
  - C
  - C++
  - C#/.NET
  - D
  - Dart
  - Delphi
  - Elixir
  - Erlang
  - Fantom
  - Go
  - Haskell
  - Java
  - JavaScript
  - Julia
  - Kotlin
  - Lisp
  - Mathematica
  - OCaml
  - PHP
  - PowerShell
  - Python
  - R
  - Ruby
  - Rust
  - Scala
  - Smalltalk
  - Swift
- Tools
  - Administration
  - Data
  - Deployment
  - Desktop
  - Development
  - Monitoring
  - Low-Code
  - Shell
  - Web
- Applications

## Resources

### Documentation

- MongoDB Server Introduction
- MongoDB Server Documentation
- MongoDB Tutorials
- MongoDB Guides
- MongoDB Developer Center
- MongoDB Driver Documentation
- MongoDB Connectors

### Articles

- 14 Things I Wish I’d Known When Starting with MongoDB (Phil Factor)
- A Custom WordPress Dashboard with MongoDB Atlas, Microsoft Azure, & Serverless Functions (Ahmad Awais)
- Building with Patterns - Series of articles regarding MongoDB Design Patterns and common use case of each Design Pattern with real world examples.
- Five Things About Scaling MongoDB (A. Jesse Jiryu Davis, MongoDB Inc.) - Scale 101
- Optimizing MongoDB Compound Indexes (A. Jesse Jiryu Davis, MongoDB Inc.) - Everything you need/have to know about indexes
- Server Discovery And Monitoring In PyMongo, Perl, And C (A. Jesse Jiryu Davis, MongoDB Inc.)
- Monitoring MongoDB performance metrics (Jean-Mathieu Saponaro, Datadog)
- Tuning MongoDB performance for production systems (Marek Trunkat, Apify) - The techniques and MongoDB Cloud features to debug performance issues and expose sub-optimal queries

### Books

- 50 Tips and Tricks for MongoDB Developers - Advanced MongoDB tips and tricks, given by a MongoDB inc. engineer
- Builder Book - Learn how to build a full stack JavaScript web app from scratch
- MongoDB Applied Design Patterns (Rick Copeland)
- MongoDB in Action, Third Edition (Arek Borucki)
- Practical MongoDB Aggregations E-Book - Free e-book: How to develop effective and optimal data manipulation and analytics pipelines
- The Little MongoDB Book - Basic introduction
- SaaS Boilerplate Book - Learn how to build a production-ready SaaS web app from scratch

### Talks

- MongoDB Schema Design (Tugdual Grall, MongoDB Inc.) [47’]
- Partial and Fuzzy Matching with MongoDB (John Page, MongoDB Inc.) [35’]
- Scaling MongoDB on Amazon Web Services (Michael Saffitz, Apptentive) [50’]

### Tutorials

- Deploy a Highly-Available MongoDB Replica Set on AWS
- Sharded Cluster with Docker Compose

### More

- MongoDB source code
- MongoDB University - Certifications and free online courses
- MongoDB 101 by Academy 3T - Free and self-paced MongoDB courses for beginners

## Libraries

### Ballerina

- ballerina-mongodb - Official Ballerina driver

### C

- mongo-c-driver - Official C driver

### C++

- mongo-cxx-driver - Official C++ driver

### C#/.NET

- mongo-csharp-driver - Official C# driver
- mongo-efcore-provider - Official Entity Framework (EF) Core provider for MongoDB
- mongo-queue-csharp - C# message queue on top of MongoDB
- MongoDB Messaging - Lightweight queue pub/sub processing library
- MongoRepository - Repository abstraction layer on top of the C# driver

### D

- vibe.d - D web framework shipping with a MongoDB driver

### Dart

- mongo_dart - Community Dart driver

### Delphi

- Alcinoe - Library for Delphi that includes a MongoDB client
- TMongoWire - Minimal community Delphi driver

### Elixir

- elixir-mongodb-driver - Community Elixir driver
- mongodb - Community Elixir driver
- mongodb_ecto - Adapter for the Ecto database wrapper

### Erlang

- mongodb-erlang - Community Erlang driver

### Fantom

- afMongo - Community Fantom driver

### Go

- Bongo - ODM based on mgo
- mgo - Community Go driver
- minquery - MongoDB cursor that paginates
- mongo-go-driver - Official Go driver

### Haskell

- mongodb - Community Haskell driver

### Java

- Jongo - Query in Java as in Mongo shell
- Hibernate OGM - The power and simplicity of JPA for NoSQL datastores
- mongo-java-driver - Official Java driver
- mongo-queue-java - Java message queue on top of MongoDB
- mongoFS - An enhancement of GridFS to allow for more features and capabilities
- Mongojack - Based on Jackson, allows you to easily handle your mongo objects as POJOs
- Morphia - Java ODM
- Morphium - Java ODM and caching layer
- Mungbean - Community driver for languages running on the JVM
- Spring Data MongoDB - Spring based, object-document support and repositories

### JavaScript

- Camo - Class-based ES6 ODM for Mongo-like databases
- deno_mongo - Community Deno driver
- DeriveJS - Reactive ODM that uses Javascript Proxies to enable transparent DB persistence
- MEAN.JS - Full stack based on MongoDB, Express, AngularJS, and Node.js
- MERN (mern-starter) - Full stack based on MongoDB, Express, React and Node.js
- Meteor - Real-time/reactive client-server framework based on MongoDB, with lots of features
- MongoMQ2 - A general-purpose message and event queuing library for MongoDB
- Mongoose - Node.js asynchronous ODM
- CASL Mongoose - Permissions management library integrated with Mongoose
- mongration - Node.js migration framework
- Moonridge - Framework with live querying on top of Mongoose and socket.io
- Neuledge - Universal schema-based ORM with multi-state representation for entities
- node-mongodb-native - Official Node.js driver

### Julia

- Mongo.jl - C driver bindings

### Kotlin

- driver-kotlin-coroutine - Official Kotlin driver
- kmongo - Kotlin toolkit based on the Java driver

### Lisp

- cl-mongo - Community Common Lisp interface
- mongo-cl-driver Community Common Lisp driver
- mongo-el - Community Emacs Lisp driver

### Mathematica

- MongoDBLink - Community Mathematica driver

### OCaml

- Mongo.ml - Community OCaml driver

### PHP

- laravel-mongodb - Official Eloquent model and query builder for Laravel
- PHP Driver - Official PHP driver
- Doctrine MongoDB ODM and MongoDB ODM Bundle for Symfony - Fully featured ORM with Symfony integration
- MongoDB Bundle - Integration of the official library with Symfony, without ORM
- yii-mongodb - Yii 2 MongoDB extension
- opentelemetry php auto-mongodb - Automatic monitoring of MongoDB commands with OpenTelemetry
- mongo-php-adapter - Adapter for applications using `ext-mongo`

### PowerShell

- Mdbc - MongoDB cmdlets for PowerShell

### Python

- AtlasQ - MongoDB Atlas Search wrapper with MongoEngine syntax
- Beanie - Asynchronous ODM based on Motor and Pydantic, which supports migrations out of the box
- Djongo - MongoDB connector for Django compatible with Django ORM
- Mongo-Thingy - Powerful schema-less ODM for MongoDB and Python (sync + async)
- MongoEngine - ODM on top of PyMongo
- Motor - Official non-blocking Python driver for Tornado or asyncio
- PyMongo - Official Python driver
- ODMantic - Asynchronous ODM on top of pydantic
- TxMongo - Twisted’s MongoDB driver

### R

- mongolite - Fast and simple client for R

### Ruby

- awesome_explain - A simple global method to explain Mongoid queries
- mongo-ruby-driver - Official Ruby driver
- Mongoid - ODM framework

### Rust

- mongodb-rust-driver - Official Rust driver

### Scala

- driver-scala - Official Scala driver
- ReactiveMongo - Non-blocking Scala driver
- Spark-MongoDB - Read/write data with Spark SQL

### Smalltalk

- MongoTalk - Community Smalltalk driver

### Swift

- MongoKitten - Community asynchronous Swift driver

## Tools

### Administration

- k8s-backup-mongodb - Schedule MongoDB backups to S3 with a Kubernetes CronJob.
- mgob - Full-featured MongoDB dockerized backup agent
- mongoctl - Manage MongoDB servers and replica sets using JSON configurations
- MongoDB Smasher - Generate randomized datasets and benchmark your setup
- mongodb-tools - Three neat Python scripts to work with collections and indexes
- mtools - Collection of scripts to set up test environments and visualize log files
- nginx-gridfs - Nginx module for serving files from GridFS
- nginx-mongodb-rest - REST client written as an Nginx module
- pt-mongodb-query-digest - Aggregates queries from query profiler and reports query usage statistics
- pt-mongodb-summary - MongoDB cluster status overview command line tool

Services: - MongoDB Atlas - MongoDB Inc. DBaaS offer (works with AWS, Azure, or GCP) - MongoDB Cloud Manager - MongoDB Inc. databases management offer - ObjectRocket - Rackspace DBaaS offer (has other database types too) - Scalegrid - Fully managed DBaaS (with option to bring your own Azure/AWS account)

### Data

- mongo-connector - Streaming replication to Elasticsearch, Solr, or MongoDB
- mongo_fdw - PostgreSQL foreign data wrapper
- mongo-hadoop - Hadoop connector
- Mongolastic - MongoDB to Elasticsearch (and vice-versa) migration tool
- MongoMultiMaster - Multi-master replication

Services: - Cluster to cluster sync - MongoDB Inc. solution for continuous data sync between separate clusters

### Deployment

- ansible-role-mongodb - Ansible role
- chef-mongodb - Chef cookbook
- DockerHub Official Docker Image
- Helm Chart
- puppet-mongodb - Puppet module (formerly puppetlabs-mongodb)

### Desktop

- Compass - Free Cross-platform GUI from MongoDB
- MongoDB for VS Code - Connect to MongoDB and prototype queries from VS Code
- MongoHub - Mac native client
- WebDB – Web-based and open-source “efficient database IDE”. Provides ERDs, data generators, an AI assistant, a NoSQL structure manager, a time machine, auto-completion and more

Services: - DataGrip - Cross-platform JetBrains’ IDE - Mingo - MongoDB Admin. Intuitive UI. Fast. Reliable - Moon Modeler - Data modeling tool for MongoDB and relational databases - NoSQLBooster - Feature-rich but easy-to-use cross-platform IDE (formerly MongoBooster) - Studio 3T - Cross-platform GUI, stable and powerful (formerly MongoChef and Robo 3T) - TablePlus - Native, lightweight GUI on macOS

### Development

- C# Analyzer - View the MongoDB Query API equivalents of your builder expressions in Visual Studio
- mgodatagen - Random data generator
- migrate-mongo - Database migration tool
- Mongo Playground - Online query playground
- Mongo Seeding - Node.js library, CLI and Docker image for populating databases using JS and JSON files
- Mongoeye - Schema and data analyzer: explore data in your collections
- Variety - Schema analyzer: see what fields are in your collection and what’s their content
- VS Code Extension

Services: - MongoDB Atlas App Services - MongoDB Inc. solution to run code without the operational overhead - MongoDB Realm - MongoDB Inc. solution for mobile data sync

### Monitoring

- check_mongodb - Nagios plugin (in Bash)
- mongo-monitor - Simple monitoring CLI
- mongo-munin - Collection of Munin plugins
- Mongoop - Long operations monitoring and alerting
- mongomon - More Munin plugins
- Motop - MongoDB top clone
- mtop - Another top clone
- nagios-plugin-mongodb - Nagios plugin (in Python)
- Percona Monitoring and Management - Free and open-source platform for managing and monitoring databases performances
- mongotail - Log all MongoDB queries in a “tail”able way

Services:

- Datadog - SaaS-based monitoring
- Solarwindws Database Performance Monitor - SaaS-based query performance analytics and monitoring

### Low-Code

> 💡 These tools are not necessarily made for MongoDB in particular, but support it.

- Appsmith - Open-source Retool alternative
- Appwrite - Open-source Firebase alternative
- Budibase - Open-source Retool alternative
- ILLA Builder - Open-source Retool alternative
- Tooljet - Open-source Retool alternative

Services: - DronaHQ - Retool alternative - Retool - Drag-and-drop editor with pre-built components to build internal tools

### Shell

- MongoDB Atlas CLI - Official Atlas API command-line client
- mongosh - Official command-line client

### Web

- adminMongo - Web-based user interface to handle connections and databases needs
- mongo-express - Web-based admin interface built with Express
- mongoadmin - Admin interface built with Django
- Mongoku - MongoDB client for the web
- mongri - Web-based user interface written in JavaScript
- Rockmongo - PHPMyAdmin for MongoDB, sort of

Services:

- HumongouS.io - Easy online GUI and data-visualization dashboards

## Applications

Those open-source applications have MongoDB somewhere in their stack:

- Builder Book App - Web app to publish books or documentation built with React and Express
- CodeCombat - Multiplayer programming game for learning how to code
- Countly - Mobile & web analytics and marketing platform built with Node.js
- FactorJS - JavaScript CMS built with Mongoose
- GrandNode - Multi-platform e-commerce shopping cart built with ASP.NET
- Leanote - Evernote clone built with Go
- NodeBB - Node.js based forum software (“built for the modern web”)
- Reaction - Event-driven, real-time commerce platform built with ES6
- SaaS Boilerplate - Boilerplate for SaaS products, built with TypeScript, React and Express
- uptime - Remote monitoring application built with Node.js and Bootstrap
- WildDuck Mail Server - Scalable high availability email server that uses MongoDB for email storage

## License

To the extent possible under law, Guillaume Gelin has waived all copyright and related or neighboring rights to this work.

mongodb.md Github