Design document can be found through https://docs.google.com/document/d/1I_x4NNWgfcXzmEFTPTYZkjIQVq_JUnZcxb5ak0o52oU/edit#heading=h.1rcba4503t2j
The date operators ($dayOfMonth, $dayOfWeek, $dayOfYear, $hour, $minute, $month, $week and $year) currently work for UTC. This causes the $group pipeline operator to insert certain rows in wrong bucket due to certain timezones being in another day.
As an example, say you're showing website statistics for a US based company and at December 31st 2011 at 10:00 PM EST someone finally visits the website, if the aggregation framework didn't respect timezones (like it does now) it'd group the data point the next day (since it's stored as 2012-01-01T02:00:00Z). Which, if you're grouping data by year is quite the error as it would look like you'd have visitors from the future.
Being able to set the timezone, either per query or per connection would solve this.