Я собираю некоторую статистику из веб-службы и храню ее в коллекции. Данные выглядят примерно так (но с большим количеством полей):
{"downloads": 30, "dt": "2010-02-17T16:56:34.163000"}
{"downloads": 30, "dt": "2010-02-17T17:56:34.163000"}
{"downloads": 30, "dt": "2010-02-17T18:56:34.163000"}
{"downloads": 30, "dt": "2010-02-17T19:56:34.163000"}
{"downloads": 30, "dt": "2010-02-17T20:56:34.163000"}
{…}
{"downloads": 30, "dt": "2010-02-18T17:56:34.163000"}
{"downloads": 30, "dt": "2010-02-18T18:56:34.163000"}
{"downloads": 30, "dt": "2010-02-18T19:56:34.163000"}
{"downloads": 30, "dt": "2010-02-18T20:56:34.163000"}
Если кто-то запрашивает ежедневные цифры за последние тридцать дней, это будет означать максимальное количество (в этом примере) «скачиваний» pr. день. Какая последняя запись дня.
Используя collection.find({"dt": {"$gt": datetime_obj_30_days_ago}})
, я, конечно, получаю все строки, что не очень подходит. Поэтому я ищу способ вернуть только последний день за указанный период.
Мне сказали, что group()
может быть правильным, но я не совсем понимаю, как заставить его работать в этом случае.
Любые советы, указатели будут очень благодарны!