This should do the trick.
db.foo.aggregate(
{$unwind: "$views"},
{$project: {date: {
day: {$dayOfMonth: "$views.date"},
month: {$month: "$views.date"},
year: {$year: "$views.date"},
}}},
{$group: {_id: {id: "$_id", date: "$date"}, views: {$sum: 1}}}
)
If you want total number of views per day for collection replace group phase with this one:
{$group: {_id: "$date", views: {$sum: 1}}}