grupo pymongo por fecha y hora
Estoy tratando de buscar en una colección y agrupar registros por campo de fecha, que es una fecha y hora. Sé que Pymongo los convierte al tipo adecuado en el fondo (ISODate o algo así).
La pregunta es, ya que los objetos de fecha y hora tienen fecha, hora, zona horaria ... ¿cómo puedo decirle al operador del grupo que use solo la porción de fecha? Porque de lo contrario no obtengo la agrupación deseada, ya que el tiempo impide que los registros con el mismo día, mes y año se agrupen.
db.test.aggregate([
{"$group": {
"_id": "$date",
"count": {"$sum": 1}
}},
{"$limit": 10}])
Resultado:
{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}]}
Sería bueno controlar la información de fecha y hora utilizada para agrupar,
agrupar solo por fechaagrupar por fecha y horaagrupar por fecha, hora y minutoetc.¿Hay algo como: (o alguna forma de decir que use solo la fecha)
db.test.aggregate([
{"$group": {
"_id": "$date.date()",
"count": {"$sum": 1}
}},
{"$sort": "_id"}
])
O tal vez hay otra forma de lidiar con esto, ¿alguna idea? Gracias.