A document-oriented database is a type of NoSQL database in which data is stored in binary document files. This type of database associates each document with a unique key that takes the form of a string, path or URI. Keys are used to locate and pull individual documents from the database. A document-oriented database may also be referred to as a document store.
"Because the database landscape is complex and confusing to navigate, it's important to fully understand the different types of DBMSes, along with when and why to use them." - Craig S. Mullins
Specific indexing options, as well as the specific application program interface (API) calls or query language, will vary based on what documents are stored in the database. The way documents are organized will also differ depending on document content. Typically, documents are organized by tags, metadata or collection. An important advantage of using a document store is that if at some future time the data model needs to be changed, only the affected documents will have to be updated.
Popular document-oriented databases include MongoDB, DynamoDB and CosmosDB.
MongoDB is one of the most popular examples of a document-oriented database. It includes features such as full index support, replication and sharding. A core function of MongoDB is its horizontal scalability, which makes it a useful database for companies running big data applications.
DynamoDB is a fully managed NoSQL database service provided by Amazon Web Services. A user can interact with the service by using AWS Management Console or a DynamoDB API. The service also provides users with a high level of I/O performance. Every DynamoDB query is executed by a primary key identifier, which can locate each item.
Cosmos DB is a Microsoft cloud operational database fabric that is well-suited for read-heavy workloads that need to scale geographically. This database can be used where an application requires multiple data models. Cosmos DB supports multiple database types such as document stores, key-value stores, graph, as well as time-series databases.