---
title: "Document Oriented Database"
url: "https://www.pulumi.com/dev/glossary/document-oriented/"
image: "https://www.pulumi.com/assets/og/dev/glossary/document-oriented.png"
---

# Document Oriented Database

A document-oriented database is a class of NoSQL database that stores and queries data in the form of documents, usually JSON but sometimes also XML or YAML. Unlike a traditional relational database, objects within a document-based database are stored completely within one document, rather than across multiple tables. As a result, the concept of “joins” is not usually present. This model allows developers to query the database programmatically in a similar fashion to how they already access data within the application code.

Conceptually, you can think of a document as roughly equivalent to an object in your programming language. The structure is similar (or identical), and documents are not required to conform to a specific schema. For example, you may have a class of document called “books.” Each “book” object is not required to contain the same keys; one may include a “co-author” key, but the next may not. This allows for a lot of flexibility with certain types of data.

Because of the flexibility and speed that document databases allow, they are a great choice for any application that relies on user profiles, content management systems, product information, and even real-time big data analytics.

[DocumentDB](https://aws.amazon.com/documentdb/), [CosmosDB](https://azure.microsoft.com/en-us/services/cosmos-db/), [Firestore](https://firebase.google.com/docs/firestore), [MongoDB](https://www.mongodb.com/)
