我正在从 Web 服务收集一些统计数据,并将其存储在一个集合中。数据看起来与此类似(但有更多字段):
{"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"}
如果有人请求过去三十天的每日数字,那将意味着(在此示例中)“下载”公关的最大数量。天。这是当天的最后一条记录。
通过使用collection.find({"dt": {"$gt": datetime_obj_30_days_ago}})
,我当然得到了所有的行,这不是很合适。因此,我正在寻找一种仅返回给定时间段内最后一天的方法。
有人告诉我这group()
可能是要走的路,但我不太明白如何让它在这种情况下工作。
任何提示,指针将不胜感激!