Aggregation nach Jahr, Monat und Tag in einer anderen Zeitzone

Ich habe eine MongoDB, die die Datumsobjekte in UTC speichert. Nun, ich möchte die Aggregation nach Jahr, Monat und Tag in einer anderen Zeitzone (MEZ) durchführen.

Dies funktioniert gut für UTC:

    BasicDBObject group_id = new BasicDBObject("_id", new BasicDBObject("year", new BasicDBObject("$year", "$tDate")).
                append("month", new BasicDBObject("$month", "$tDate")).
                append("day", new BasicDBObject("$dayOfMonth", "$tDate")).
                append("customer", "$customer"));

    BasicDBObject groupFields = group_id.
            append("eventCnt", new BasicDBObject("$sum", "$eventCnt")); 

    BasicDBObject group = new BasicDBObject("$group", groupFields);

oder, wenn Sie die Befehlszeile verwenden (nicht getestet, ich habe nur die Java-Version getestet):

{
    $group: {
        _id: {
            "year": {
                "$year", "$tDate"
            },
            "month": {
                "$month", "$tDate"
            },
            "day": {
                "$dayOfMonth", "$tDate"
            },
            "customer": "$customer"
        },
        "eventCount": {
            "$sum": "$eventCount"
        }
    }
}

Wie konvertiere ich diese Daten innerhalb des Aggregations-Frameworks in MEZ?

Beispiel: "2013-09-16 23:45:00 UTC" ist "2013-09-17 00:45:00 CET". Dies ist ein anderer Tag.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage