2014-01-18 8 views
0

Только что начал с mongodb и использовал этот пост, чтобы сделать аналогичный запрос, но мне нужна фактическая дата, например mm/dd/yyyy, а не только день года - помощь!MongoDB beginner - Группа по дате

How to group by multiple fields in MongoDB when one is a date field

Вот запрос у меня есть (почти такой же, как пост выше):

db.col.aggregate(
    { $group: { 
     _id: { 
      status: "$status", 
      dayOfYear: { $dayOfYear: "$datetime" } 
     }, 
     hits: { $sum: "$hits" } 
    } } 
) 

Вот выборка данных:

{ 
    "_id" : ObjectId("45f5ed29f4e1a522bfe53f13"), 
    "hits" : 2, 
    "status" : 400, 
    "datetime" : ISODate("2014-01-10T10:17:57.216Z") 
} 
+0

Можете ли вы написать то, что у вас есть прямо сейчас, чтобы мы могли это исправить;) –

+0

Добавлено сообщение У меня есть - спасибо! – user3210860

+0

Примеры данных помогают;). Дайте мне минутку ... –

ответ

1

Вы можете добавить несколько столбцов даты или удалить их для получения разных группировок:

db.col.aggregate(
    { $group: { 
     _id: { 
      status: "$status", 
      month: { $month: "$datetime" }, 
      day: { $dayOfYear: "$datetime" }, 
      year: { $year: "$datetime" } 
     }, 
     hits: { $sum: "$hits" } 
    } } 
) 

Это означает: для каждого уникального статуса, который появился в определенный день (игнорировать время), суммировать все образы.

Смежные вопросы