Pymongo-Gruppe nach Datum und Uhrzeit

Ich versuche, durch eine Sammlung und Gruppendatensätze nach Datumsfeld zu suchen, das eine Datumszeit ist. Ich weiß, dass Pymongo diese in den richtigen Typ im Hintergrund konvertiert (ISODate oder so ähnlich).

Die Frage ist, da datetime-Objekte Datum, Uhrzeit, Zeitzone haben. Wie kann ich den Gruppenoperator anweisen, nur den Datumsanteil zu verwenden? Weil ich sonst nicht die gewünschte Gruppierung bekomme, da die Zeit verhindert, dass die Datensätze mit dem gleichen Tag, Monat, Jahr gruppiert werden.

db.test.aggregate([
        {"$group": {
             "_id": "$date", 
             "count": {"$sum": 1}
        }},
        {"$limit": 10}])

Ergebnis:

{u'ok': 1.0,
 u'result': [
  {u'_id': datetime.datetime(2014, 2, 15, 18, 49, 9, tzinfo=<bson.tz_util.FixedOffset object at 0x318f210>),
   u'count': 1},
  {u'_id': datetime.datetime(2014, 2, 15, 18, 36, 38, tzinfo=<bson.tz_util.FixedOffset object at 0x318f210>),
   u'count': 1},
  {u'_id': datetime.datetime(2014, 2, 15, 18, 23, 56, tzinfo=<bson.tz_util.FixedOffset object at 0x318f210>),
   u'count': 1}]}

Es wäre schön, die zur Gruppierung verwendeten Datums- und Uhrzeitinformationen zu kontrollieren.

Nur nach Datum gruppierengruppieren nach Datum und StundeGruppieren nach Datum, Stunde und Minuteusw.

Gibt es etwas wie: (oder eine Art zu sagen, nur Datum zu verwenden)

db.test.aggregate([
          {"$group": {
              "_id": "$date.date()",
              "count": {"$sum": 1}
          }},
          {"$sort": "_id"}
])

Oder gibt es eine andere Art, damit umzugehen, irgendwelche Ideen? Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage