【发布时间】:2019-11-13 07:18:07
【问题描述】:
您好,我有一个 MongoDB 聚合问题,我想生成一个没有的报告。在数据库中完成的操作,使用聚合阶段 $match 和 $group 在匹配中提供间隔 $gte 和 $lte,在组中尝试获取每 15 分钟的数据。的操作 EVEN 0 OPERATIONS 报告也需要。
** 我用过这样的聚合**
starttime = datetime.strptime(request.args.get('start'), '%Y-%m-%d-%H-%M-%S')
endtime = datetime.strptime(request.args.get('end'), '%Y-%m-%d-%H-%M-%S')
reportView = []
pipeline = [{
"$match": {
"time": { "$gte": starttime, "$lte": endtime}}
},
{ "$sort": { "time": -1 } },
{ "$group": {
"_id": {
"$toDate": {
"$subtract": [
{ "$toLong": { "$toDate": "$time" } },
{ "$mod": [ { "$toLong": { "$toDate": "$time" } }, 1000 * 60 * 15 ] }
]
}
},
"count": { "$sum": 1 }
}}
]
得到这个输出:
标题
[
{
"_id": "Sat, 12 Oct 2019 16:30:00 GMT",
"count": 1
},
{
"_id": "Tue, 22 Oct 2019 13:15:00 GMT",
"count": 1
},
{
"_id": "Fri, 01 Nov 2019 19:00:00 GMT",
"count": 1
},
{
"_id": "Thu, 31 Oct 2019 11:15:00 GMT",
"count": 1
}]
###### 没有得到非操作间隔##### enter code here
标题##但我需要这样的输出:
[
{
"_id": "Sat, 12 Oct 2019 16:30:00 GMT",
"count": 1
},
{
"_id": "Sat, 12 Oct 2019 16:45:00 GMT",
"count": 0
},
{
"_id": "Sat, 12 Oct 2019 17:00:00 GMT",
"count": 0
},
{
"_id": "Sat, 12 Oct 2019 17:15:00 GMT",
"count": 0
},
{
"_id": "Sat, 12 Oct 2019 17:30:00 GMT",
"count": 1
},
{
"_id": "Sat, 12 Oct 2019 17:45:00 GMT",
"count": 5
},
{
"_id": "Sat, 12 Oct 2019 18:00:00 GMT",
"count": 0
},
{
"_id": "Sat, 12 Oct 2019 18:15:00 GMT",
"count": 0
}]
【问题讨论】:
-
请帮帮我
-
对于 0 计数操作报告,甚至没有得到非操作间隔
-
能否提供一些示例数据
标签: python mongodb flask aggregation-framework mongoengine