Je rassemble des statistiques d'un service Web et les stocke dans une collection. Les données ressemble à ceci (mais avec plus de champs):
{"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"}
Si quelqu'un demande le nombre quotidien des trente derniers jours, cela signifierait le montant maximum de (dans cet exemple) « téléchargements » pr. journée. Quel est le dernier record de la journée. En utilisant collection.find({"dt": {"$gt": datetime_obj_30_days_ago}})
, j'obtiens bien sûr toutes les lignes, ce qui n'est pas très approprié. Donc, je cherche un moyen de ne retourner que le dernier jour de la période donnée.
On m'a dit que group()
pourrait être le chemin à parcourir, mais je n'arrive pas à comprendre comment le faire fonctionner dans ce cas.
Des conseils, des pointeurs seraient très appréciés!
Merci beaucoup, Coady - vous venez d'élargir ma compréhension de 'group'. :-) –