- [[DynamoDB]]
- [[MongoDB]]
- [[CouchDB]]
### General
---
- flexible schema compared to [[SQL Databases]]
- types include
1. key value stores (i.e [[Redis]])
2. document databases (i.e [[MongoDB]])
3. wide column stores (i.e [[Cassandra]])
4. graph databases (i.e [[Neo4j]])
- we typically query by document, i.e:
![[CleanShot 2025-02-28 at 16.40.39.png|200]]
- join operations aren't supported
- [[JSON]] NoSQL DB allows 1:1 mapping between program objects and stored database documents
- reasons to choose NoSQL over [[SQL Databases]]:
- data is unstructured, or no relational data
- application requires super low [[Latency]]
- you need to store a massive amount of data
- you only need to [[Serialize]] or deserialize data ([[JSON]], YAML etc.)
- typically scales by [[Horizontal Scaling]]
- sacrifices [[ACID]] compliance for performance and scalability
### When To Choose NoSQL
---
- large volumes of unstructured data
- want flexibility in data structure
- rapid development
- (that requires a lot of flexibility)