为了账号安全,请及时绑定邮箱和手机立即绑定

按 15 分钟间隔时间聚合组

按 15 分钟间隔时间聚合组

Go
动漫人物 2021-12-20 15:47:27
我正在尝试计算 15 分钟的平均数据速度。我得到了结果,它包含平均速度,但不确定它是否正确,并且对于 15 分钟的设置,也是minutes零。o3 := bson.M{    "$group": bson.M{        "_id": bson.M{            "minute": bson.M{                "$subtract": []interface{}{                    "$timestamp",                    bson.M{                        "$mod": []interface{}{                            "$minute",                            15,                        },                    },                },            },        },        "averageSpeed": bson.M{            "$avg": "$speed",        },    },}有人做过类似的事情或可以提供帮助吗?
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

在 mongo shell 中运行以下管道应该会给你正确的结果:


pipeline = [

    { 

        "$group": {

            "_id": {

                "year": { "$year": "$timestamp" },

                "dayOfYear": { "$dayOfYear": "$timestamp" },

                "minute_interval": {

                    "$subtract": [ 

                        { "$minute": "$timestamp" },

                        { "$mod": [{ "$minute": "$timestamp" }, 15] }

                    ]

                }

            },

            "averageSpeed": { "$avg": "$speed" }

        }

    }

]

db.collection.aggregate(pipeline)

其中等效的 mGo 表达式如下(未经测试):


pipeline := []bson.D{   

    bson.M{

        "$group": bson.M{

            "_id": bson.M{

                "year": bson.M{ "$year": "$timestamp" },

                "dayOfYear": bson.M{ "$dayOfYear": "$timestamp" },

                "minute_interval": bson.M{

                    "$subtract": []interface{}{ 

                        bson.M{ "$minute": "$timestamp" },

                        bson.M{ "$mod": []interface{}{ bson.M{ "$minute": "$timestamp" }, 15, }, } }

                    }

                }

            },

            "averageSpeed": bson.M{ "$avg": "$speed" }

        }

    }

}


pipe := collection.Pipe(pipeline)

iter := pipe.Iter()


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信