【发布时间】:2020-06-10 11:17:50
【问题描述】:
我在 mongo 中的文档是这样存储的:
{
"_id" : ObjectId("5ea779501b4757cbca33e8e0"),
"direction" : 180,
"latitude" : -3.724404,
"longitude" : -38.557694,
"metrictimestamp" : ISODate("2018-02-01T02:59:34Z"),
"odometer" : 161245809,
"routecode" : 0,
"speed" : 0,
"deviceid" : 148469,
"vehicleid" : 33089
}
我需要根据“metrictimestamp”字段上的日期对这些文档进行分组并计算同一天的车辆数量,我正在使用以下查询(请注意在 pymongo 上):
pipe = [
{
"$addFields": {
"date": {
"$substrBytes": [
"$metrictimestamp",
0,
10
]
}
}
},
{
"$group": {
"_id": {
"vehicleid": "$vehicleid",
"date": "$date"
},
"count": {
"$sum": 1
}
}
}
]
这对我来说很好用,但我不能停止认为有更有效的方法可以做到这一点,感谢任何建议。
【问题讨论】:
标签: mongodb aggregation-framework pymongo