A good shard key has high cardinality and good distribution, and supports your common query patterns. A common bad choice is a monotonically increasing key (like timestamp) that creates hotspots on one shard.
Advanced answer
Deep dive
Expanding on the short answer — what usually matters in practice:
Context (tags): sharding, shard-key, scaling
Data model and access patterns: dominant queries (read/write ratio, sorting, pagination).
Indexes: when they help vs hurt (write amplification, memory).
Consistency & transactions: what’s guaranteed and what can bite you.
Explain the "why", not just the "what" (intuition + consequences).
Trade-offs: what you gain/lose (time, memory, complexity, risk).
Edge cases: empty inputs, large inputs, invalid inputs, concurrency.