The balancer moves chunks between shards to keep data evenly distributed. Migrations consume CPU/IO/network and can increase latency, especially if you move large or “hot” chunks. Reduce impact with a good shard key (avoid hotspots), monitor migrations, schedule them off-peak, and use zones/pre-splitting when appropriate.
Expanding on the short answer — what usually matters in practice:
A tiny example (query + projection):
// Example: query + projection
const user = await db.collection('users').findOne(
{ email: '[email protected]' },
{ projection: { _id: 0, email: 1, name: 1 } },
)