Should have high distinct values (e.g., user_id, email)
Avoid low-cardinality fields (e.g., boolean, gender)
The shard key should ensure that data is evenly distributed across all shards to prevent any one shard from becoming overloaded. High cardinality fields (fields with many unique values) are often good candidates
In MongoDB, shard key values are immutable. Once set, they cannot be updated, so choose a key that won't require modifications.