MongoDB
The application data platform

Accelerate development, address diverse data sets, and adapt quickly to change with a proven application data platform built around the database most wanted by developers 4 years running.

The database for modern applications

MongoDB’s document data model naturally supports JSON and its expressive query language is simple for developers to learn and use. Functionality such as automatic failover, horizontal scaling, and the ability to assign data to a location are built-in.

Flexible and intuitive data model

Data as code

Unlimited scalability

Learn more →

Modernize your data infrastructure

Radically simplify your data infrastructure with an application data platform that powers your transactional, search, mobile, and real-time analytics workloads on any cloud.

Fully managed

Unified API

Transparent data movement

Discover MongoDB Cloud →

Powering mission-critical applications and systems for global organizations

the document data model

The most intuitive way to work with the data generated by today's applications

Rich JSON Documents

Documents map to how developers code, support arrays and nested objects as values, and allow for flexible and dynamic schemas.

Get started now →

json
{
  "_id": "5cf0029caff5056591b0ce7d",
  "firstname": "Jane",
  "lastname": "Wu",
  "address": {
    "street": "1 Circle Rd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90404"
  },
  "hobbies": ["surfing", "coding"]
}

Work with data as code

Easily composable queries that allow you to filter and sort by any field, no matter how nested, with support for aggregations, geo-location, graph search, time-series and more.

Get started now →

bash

> db.users.find({ "address.zip" : "90404" })
{ "_id": "5cf0029caff5056591b0ce7d", "firstname": "Jane", "lastname": "Wu", "address": { "zip": "90404" } }
{ "_id": "507f1f77bcf86cd799439011", "firstname": "Jon", "lastname": "Davis", "address": { "zip": "90404" } }
{ "_id": "5349b4ddd2781d08c09890f3", "firstname": "Jim", "lastname": "White", "address": { "zip": "90404" } }
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jeff", "lastname": "Taylor", "address": { "zip": "90404" } }
{ "_id": "5cf003283b23d04a40d5f88a", "firstname": "Jerry", "lastname": "Miller", "address": { "zip": "90404" } }
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jai", "lastname": "Williams", "address": { "zip": "90404" } }
{ "_id": "5cf0036deaa1742dd225ea35", "firstname": "Jess", "lastname": "Johnson", "address": { "zip": "90404" } }
{ "_id": "54495ad94c934721ede76d90", "firstname": "Jill", "lastname": "Brown", "address": { "zip": "90404" } }
{ "_id": "566eb3c704c7b31facbb0007", "firstname": "Janet", "lastname": "Jones", "address": { "zip": "90404" } }
{ "_id": "5a999cc461d36489a27f2563", "firstname": "Jan", "lastname": "Smith", "address": { "zip": "90404" } }

Support complex requirements

Address your most sophisticated application requirements with joins, distributed multi-document ACID transactions, and more.

Get started now →

python
session.start_transaction()
order = { line_items : [ { item : 5, quantity: 6 } ] }
db.orders.insertOne( order, session=session );
for x in order.line_items:
  db.inventory.update(
    { _id  : x.item } ,
    { $inc : { number : -1 * x.quantity } },
    session=session
  )
session.commit_transaction()
json
{
  "_id": "5cf0029caff5056591b0ce7d",
  "firstname": "Jane",
  "lastname": "Wu",
  "address": {
    "street": "1 Circle Rd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90404"
  },
  "hobbies": ["surfing", "coding"]
}
bash

> db.users.find({ "address.zip" : "90404" })
{ "_id": "5cf0029caff5056591b0ce7d", "firstname": "Jane", "lastname": "Wu", "address": { "zip": "90404" } }
{ "_id": "507f1f77bcf86cd799439011", "firstname": "Jon", "lastname": "Davis", "address": { "zip": "90404" } }
{ "_id": "5349b4ddd2781d08c09890f3", "firstname": "Jim", "lastname": "White", "address": { "zip": "90404" } }
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jeff", "lastname": "Taylor", "address": { "zip": "90404" } }
{ "_id": "5cf003283b23d04a40d5f88a", "firstname": "Jerry", "lastname": "Miller", "address": { "zip": "90404" } }
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jai", "lastname": "Williams", "address": { "zip": "90404" } }
{ "_id": "5cf0036deaa1742dd225ea35", "firstname": "Jess", "lastname": "Johnson", "address": { "zip": "90404" } }
{ "_id": "54495ad94c934721ede76d90", "firstname": "Jill", "lastname": "Brown", "address": { "zip": "90404" } }
{ "_id": "566eb3c704c7b31facbb0007", "firstname": "Janet", "lastname": "Jones", "address": { "zip": "90404" } }
{ "_id": "5a999cc461d36489a27f2563", "firstname": "Jan", "lastname": "Smith", "address": { "zip": "90404" } }
python
session.start_transaction()
order = { line_items : [ { item : 5, quantity: 6 } ] }
db.orders.insertOne( order, session=session );
for x in order.line_items:
  db.inventory.update(
    { _id  : x.item } ,
    { $inc : { number : -1 * x.quantity } },
    session=session
  )
session.commit_transaction()
Developer Resources

Learn with MongoDB

Learn more →

Technical documentation

Learn more →

Developer community

Learn more →
Cloud or Self-Managed

Choose the right deployment model for your organization

MongoDB Atlas
Multi-cloud database service
The most advanced cloud database on the market, with unmatched data distribution and mobility across AWS, Azure, and Google Cloud, built-in automation for resource and performance optimization, and much more.
MongoDB Enterprise Advanced
Run it yourself
Run MongoDB on-premises or in your private & hybrid cloud environments with confidence using enterprise-grade security capabilities and a package of software, support, and services designed to help your teams reduce cost, risk, and effort.
Customer Stories

Trusted by thousands of organizations, from startup to enterprise

Forbes
Cloud Migration for Innovation
Toyota Material Handling
Creates a Smart Factory
KPMG
Global financial services
We're very glad we moved to the cloud when we did. Shifting quickly to Google Cloud and MongoDB Atlas put us in a position to innovate and thrive even in the most difficult circumstances.
For the developers, it is easy, really easy for them to work with quickly. Spending time on building business value, rather than data modeling.
MongoDB Atlas automated the configuration and provisioning of MongoDB instances onto Azure, and we rely on it now to handle on-going upgrades and maintenance. A few simple clicks in the UI eliminates the need for us to develop our own configuration management scripts.
Ready to start building?
Launch a new cluster or migrate to MongoDB Atlas today, with zero downtime.
Looking for enterprise solutions?
Speak to our team of experts to discover how MongoDB Atlas can drive your organization to success.
Useful resources

Helping you stay ahead

Learn with MongoDB

Learn more →

MongoDB blog

Learn more →

Join the community

Learn more →