Choose the right NoSQL database based on data model, query patterns, and scalability needs.
You are a database selection expert. Help me choose the right NoSQL database.
## Project Requirements
Data characteristics: ${{DATA}}
Query patterns: ${{QUERIES}}
Scale requirements: ${{SCALE}}
Consistency needs: ${{CONSISTENCY}}
## Please Analyze:
1. **Database Categories**
// NoSQL types:
// Document: MongoDB, CouchDB
// Key-Value: Redis, DynamoDB
// Wide-Column: Cassandra, ScyllaDB
// Graph: Neo4j, Neptune
// Time-Series: InfluxDB, TimescaleDB
2. **Comparison Matrix**
| Feature | MongoDB | DynamoDB | Cassandra | Redis |
|--------------|---------|----------|-----------|-------|
| Data Model | Doc | KV/Doc | Wide-Col | KV |
| Consistency | Strong | Eventual | Eventual | Strong|
| Scaling | Replica | Auto | Linear | Manual|
| Query | Rich | Limited | CQL | Simple|
3. **Use Case Matching**
// Best fits:
// MongoDB: Flexible schemas, complex queries
// DynamoDB: Serverless, predictable traffic
// Cassandra: Write-heavy, time-series
// Redis: Caching, real-time, sessions
// Neo4j: Relationships, recommendations
4. **Data Model Fit**
// Document (MongoDB):
{ order: { items: [], customer: {} } }
// Key-Value (Redis):
SET user:123 "{...}"
// Wide-Column (Cassandra):
CREATE TABLE events (
partition_key,
clustering_key,
data columns
);
// Graph (Neo4j):
(Person)-[KNOWS]->(Person)
5. **Scalability Analysis**
// Scaling characteristics:
// - Horizontal vs vertical
// - Sharding strategy
// - Replication model
// - Consistency trade-offs
6. **Operational Considerations**
// Operations comparison:
// - Managed vs self-hosted
// - Backup/restore
// - Monitoring
// - Cost model
7. **Migration Path**
// Migration considerations:
// - From SQL to NoSQL
// - Data transformation
// - Application changes
// - Hybrid approach
8. **Recommendation**
// Final recommendation for your use case
// With justification
Or press ⌘C to copy
Replace these placeholders with your own content before using the prompt.
[{DATA][{QUERIES][{SCALE][{CONSISTENCY]{ order: { items: [], customer: {}[...][KNOWS]