это вид документа, у меня есть:Mongoid Группировка по дате
{
event_type: 'click',
created_at: '2015-02-15 10:00:00',
user_id: 100
}
Мне нужно просуммировать уникальных пользователей в день с event_type = нажмите. Чтобы получить что-то вроде:
{
count: 320,
date: '2015-02-15'
}
{
count: 451,
date: '2015-02-16'
}
(обратите внимание на формат даты)
Я пробовал много разных вещей, которые я нашел на SO, это один почти работал для меня: Best way to group by date with Mongoid Я просто не мог выяснить, как изменить его, чтобы сделать именно то, что мне нужно.
Это сырье запрос, который почти делает то, что я хочу достичь с Mongoid:
db.events.aggregate([
{$match: {event_type: 'click', created_at: {
$gte: ISODate('2015-01-01T00:00:00.000Z'),
$lt: ISODate('2016-01-01T00:00:00.000Z')
}}},
{$group: {
_id: {user_id: '$user_id', account_id: '$account_id', created_at: {
day: { $dayOfMonth: '$created_at' },
month: { $month: '$created_at' },
year: { $year: '$created_at'}
}},
'count': {'$sum': 1}
}
},
{$sort: {created_at: -1}},
])
Любые предложения?
- это дата вашего имени 'created_at' - дата или строка ISO? – Yogesh
created_at is date ISO – Udi