3.7 KiB
3.7 KiB
name, description
| name | description |
|---|---|
| ck-databases | Design schemas and write queries for MongoDB and PostgreSQL. Use for database design, SQL/NoSQL queries, aggregation pipelines, indexes, migrations, replication, performance optimization, psql CLI operations. |
ck-databases
Unified guide for working with MongoDB (document-oriented) and PostgreSQL (relational) databases.
When to Use
- Designing database schemas and data models
- Writing queries (SQL or MongoDB query language)
- Building aggregation pipelines or complex joins
- Optimizing indexes and query performance
- Implementing database migrations
- Setting up replication, sharding, or clustering
- Configuring backups and disaster recovery
- Analyzing slow queries and performance issues
- Administering production database deployments
Don't Use When
- ORM/query-builder API work only — refer to the specific library's docs via
ck-docs-seeker - Infrastructure setup for managed database services — use
ck-devops
Database Selection Guide
| Need | Choose |
|---|---|
| ACID transactions, complex joins | PostgreSQL |
| Flexible document schema | MongoDB |
| Caching, sessions, queues | Redis |
| Analytics/OLAP workloads | PostgreSQL with proper indexing |
| 1-to-few relationships | MongoDB embedded documents |
| 1-to-many or many-to-many | MongoDB references or PostgreSQL FK |
MongoDB Best Practices
- Use embedded documents for 1-to-few relationships
- Reference documents for 1-to-many or many-to-many
- Index frequently queried and sorted fields
- Use aggregation pipeline for complex transformations
- Enable authentication and TLS in production
- Use Atlas for managed hosting
Common patterns:
- CRUD operations with query operators and atomic updates
- Aggregation pipeline stages:
$match,$group,$lookup,$project,$sort - Index types: single field, compound, text, geospatial, TTL
- Atlas search for full-text capabilities
PostgreSQL Best Practices
- Normalize schema to 3NF; denormalize selectively for performance
- Use foreign keys for referential integrity
- Index foreign keys and frequently filtered columns
- Use
EXPLAIN ANALYZEto optimize queries - Regular
VACUUMandANALYZEmaintenance - Connection pooling via pgBouncer for web apps
Key features:
SELECT, JOINs, subqueries, CTEs, window functionspsqlmeta-commands for administrationEXPLAIN, query optimization, vacuum, index maintenance- User management, backups, replication, point-in-time recovery
Python Utility Scripts
Available in the skill's scripts/ directory:
# Generate and apply migrations
python scripts/db_migrate.py --db mongodb --generate "add_user_index"
python scripts/db_migrate.py --db postgres --apply
# Backup and restore
python scripts/db_backup.py --db postgres --output /backups/
# Performance analysis
python scripts/db_performance_check.py --db mongodb --threshold 100ms
Performance Optimization Checklist
- Indexes on frequently queried fields
- Compound indexes ordered by selectivity
EXPLAIN ANALYZErun on slow queries- Connection pooling configured
- Query result caching with Redis where appropriate
- Pagination instead of full table scans
- Read replicas for read-heavy workloads
- Partitioning for very large tables (PostgreSQL)
Security Checklist
- Authentication enabled (no anonymous access)
- TLS/SSL for connections in production
- Parameterized queries everywhere (never string concatenation)
- Least-privilege database users
- Regular backups tested for restore
- Audit logging enabled for sensitive operations
Resources
- MongoDB: https://www.mongodb.com/docs/
- PostgreSQL: https://www.postgresql.org/docs/