A document store is a type of NoSQL DB that stores data within documents. Documents come in formats such as XML, JSON or binary. Documents are self-contained i.e., each document holds all of the information about a particular object e.g., a customer document would hold all the relevant information in one place. This makes a document store typically denormalized.
Document stores provide APIs or a query language to use to query the internal structure and content of the document.
Document Store Structure
-
Documents are grouped into collections which are akin to tables. A collection of documents represent a set of entities e.g. customers.
-
Documents can be tagged with keywords or labels. This allows for categorizing the documents based on their attributes/properties.
-
Documents contain metadata e.g., creation, access permissions, authorship.
-
In some implementations, documents could be organized into hierarchical structures (similar to file systems).
Common Implementations
- MongoDB
- DynamoDB
- CouchDB