MongoDB VS SQLAlchemy

Compare MongoDB vs SQLAlchemy and see what are their differences.


The MongoDB Database (by mongodb)


The Database Toolkit for Python (by sqlalchemy)
Our great sponsors
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • SaaSHub - Software Alternatives and Reviews
MongoDB SQLAlchemy
236 120
24,692 8,045
1.0% 2.9%
10.0 9.6
1 day ago 1 day ago
C++ Python
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of MongoDB. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-12.
  • Create your own AI voice assistant bot with Node.js using Google Bard
    2 projects | | 12 Nov 2023
    MongoDB — a database service
  • MongoDB Quick Start Guide 🍃⚡️
    4 projects | | 6 Oct 2023
    MongoDB is an open source NoSQL Document database which horizontally scales utilizing clustered servers in replica-sets. A great option for testing and performing local development with MongoDB is using Docker and Docker Compose. The following docker compose spec will create a local docker container running MongoDB with the data persisted to a docker volume.
  • MongoDB’s New Query Engine
    4 projects | | 21 Sep 2023
  • Database Review: Top Five Missing Features from Database APIs
    19 projects | | 14 Sep 2023
    MongoDB (Mongoose)
    7 projects | | 30 Jul 2023
    Databases Backend developers use databases like MySQL, PostgreSQL, MongoDB (NoSQL), or Redis (an in-memory database) to store and manage data. It is important for persistent data storage and retrieval in web applications.
  • How to Choose the Right MQTT Data Storage for Your Next Project
    8 projects | | 23 Jul 2023
    MongoDB{:target="_blank"} is a document-oriented database with high scalability and flexibility for handling unstructured or semi-structured data. It offers rich querying capabilities, indexing options, and support for distributed data storage with a technique called “sharding”.
  • When to Use a NoSQL Database
    4 projects | | 21 Jul 2023
    NoSQL databases are non-relational databases with flexible schema designed for high performance at a massive scale. Unlike traditional relational databases, which use tables and predefined schemas, NoSQL databases use a variety of data models. There are 4 main types of NoSQL databases - document, graph, key-value, and column-oriented databases. NoSQL databases generally are well-suited for unstructured data, large-scale applications, and agile development processes. The most popular examples of NoSQL databases are MongoDB (document), Memgraph (graph), Redis (key-value store) and Apache HBase (column-oriented).
  • Full Stack To Do list, a step-by-step tutorial
    7 projects | | 14 Jul 2023
    Our example application will be based on the ME*N stack where M is a MongoDB (but it could be MySQL, or any other) database. E is for Express, which is a backend framework that sits on top of Node.JS. There are others but Express is extremely common and will meet our needs well. N is for the JavaScript runtime Node.js but Deno and Bun are possible alternatives. Finally the * is for the frontend framework such as Angular (MEAN), React (MERN) or Vue (MEVN), to name a few. However, in our example we will not be using a framework (to keep it agnostic and besides it is not that complicated), instead we will be using the native web technologies (HTML, CSS and JS).
  • Create API with GraphQL, Prisma, and MongoDB
    4 projects | | 13 Jul 2023
    MongoDB is a highly scalable document-type database. Its flexible schema approach allows developers to adapt and modify the data structure as needed, providing agility in application development.
  • Redis vs MongoDB: Which Database Suits Your Needs?
    2 projects | /r/u_webdev20 | 7 Jun 2023
    MongoDB is an open-source, document-oriented database, meaning it stores data in a semi-structured format similar to JSON (JavaScript Object Notation), known as BSON (Binary JSON).


Posts with mentions or reviews of SQLAlchemy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-06.
  • Unlocking efficient authZ with Cerbos’ Query Plan
    5 projects | | 6 Sep 2023
    To simplify this process, Cerbos developers have come up with adapters for popular Object-Relational Mapping (ORM) frameworks. You can check out for more details on the query plan repo - which also contains adapters for Prisma and SQLAlchemy - as well as a fully functioning application using Mongoose as its ORM.
  • Python: Just Write SQL
    21 projects | | 14 Aug 2023
    That above pattern is one I've seen people do even recently, using the "select().c" attribute which from very early versions of SQLAlchemy is defined as "the columns from a subquery of the SELECT" ; this usage began raising deprecation warnings in 1.4 and is fully removed in 2.0 as it was a remnant of a much earlier version of SQLAlchemy. it will do exactly as you say, "make a subquery for each filter condition".

    the moment you see SQLAlchemy doing something you see that seems "asinine", send an example to and I will clarify what's going on, correct the usage so that the query you have is what you expect, and quite often we will add new warnings or documentation when we see people doing things we didn't anticipate.

  • A steering council note about making the global
    3 projects | | 29 Jul 2023
    The creator and lead maintainer of SQLAlchemy, one of the most popular and most used Python library for accessing databases (who doesn't?) gave a rather interesting response to PEP703.

    If this doesn't ring any alarm bells I don't know what will.

    > Basically for the moment the GIL-less idea would likely be burdensome for us and the fact that it's only an "option" seems to strongly imply major compatibility issues that we would not prefer.

  • More public SQL-queryable databases?
    3 projects | /r/datasets | 10 Jul 2023
    Recently I discovered BigQuery public datasets - just over 200 datasets available for directly querying via SQL. I think this is a great thing! I can connect these direct to an analytics platform (we use Apache Superset which uses Python SQLAlchemy under the hood) for example and just start dashboarding.
  • Day 46-47: Beginner FastAPI Series - Part 3
    2 projects | | 8 Jun 2023
    Our tool we're going to be using for interfacing with the SQLite database is SQLAlchemy, a SQL toolkit that provides a unified API for various relational databases. If you installed FastAPI with pip install "fastapi[all]", SQLAlchemy is already part of your setup. but if you opted for FastAPI alone, you would need to install SQLAlchemy separately with pip install sqlalchemy.
  • Is there a Python module that can store data between runs?
    2 projects | /r/learnpython | 14 Apr 2023
  • Starlite updates March '22 | 2.0 is coming
    14 projects | /r/Python | 26 Mar 2023
    This feature is yet to be released, but it will allow you to seamlessly use data modelled with for example Pydantic, SQLAlchemy, msgspec or dataclasses in your route handlers, without the need for an intermediary model; The conversion will be handled by the specific DTO "backend" implementation. This new paradigm also makes it trivial to add support for any such modelling library, by simply implementing an appropriate backend.
  • Reddit Recap Series: Backend Performance Tuning
    4 projects | /r/RedditEng | 13 Mar 2023
    The second problem was caused by the pgBouncer setup. pgBouncer is an impostor that owns several dozen of real PostgreSQL connections, but pretends that it has thousands of them available for the backend services. Similar to fractional-reserve banking. So, it needs a way to find out when the real DB connection becomes free and can be used by another service. Our pgBouncer was configured as pool_mode=transaction. I.e., it detected when the current transaction was over, and returned the PostgreSQL connection into the pool, making it available to other users. However, this mode was found to not work well with the code that was using SQLAlchemy: committing the current transaction immediately started a new one. So, the expensive connection between pgBouncer and PostgreSQL remained checked out as long as the connection from service to pgBouncer remained open (forever, or close to that).
  • Domain model with SQLAlchemy
    2 projects | | 16 Feb 2023
    In this blog post, we will explore the power of SQLAlchemy, a popular ORM library in Python, to model our domain objects.
  • Is Python the right language for database work?
    3 projects | /r/learnpython | 13 Feb 2023

What are some alternatives?

When comparing MongoDB and SQLAlchemy you can also consider the following projects:

PonyORM - Pony Object Relational Mapper

tortoise-orm - Familiar asyncio ORM for python, built with relations in mind

Peewee - a small, expressive orm -- supports postgresql, mysql, sqlite and cockroachdb

mongo-express - Web-based MongoDB admin interface, written with Node.js and express

Orator - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.

prisma-client-py - Prisma Client Python is an auto-generated and fully type-safe database client designed for ease of use

pyDAL - A pure Python Database Abstraction Layer

GINO - GINO Is Not ORM - a Python asyncio ORM on SQLAlchemy core.

Marten - .NET Transactional Document DB and Event Store on PostgreSQL

LiteDB - LiteDB - A .NET NoSQL Document Store in a single data file

pydantic - Data validation using Python type hints

psycopg2 - PostgreSQL database adapter for the Python programming language