首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动获取mongodb每小时的记录?

如何自动获取mongodb每小时的记录?
EN

Stack Overflow用户
提问于 2019-12-05 22:09:50
回答 1查看 225关注 0票数 0

我有一个Node.JS应用程序。它每秒从设备获取温度数据,并将其存储在MongoDB中。现在我需要找到过去24个月的数据,并需要得到过去24小时内每小时的平均温度。我有最近24小时的数据。但是找不到一种方法来获得平均数据/小时。有什么方法可以实现这个解决方案吗?

代码语言:javascript
复制
mongoose.connection.db.collection(templateId)
       .aggregate([
                   {
                     $match: {
                              "deviceId":deviceId,
                              "entryDayTime":{
                                  $lt : new Date(),
                                  $gte: new Date(new Date().setHours(new Date().getHours()-24))
                                     }
                             }
                   },
                   {
                     $sort: {"entryDayTime":-1}
                   },
                   {
                     $group: {
                               _id: null,
                               average: {$avg:"$temperature"},
                             }
                   },
                   {
                     $project:{
                               _id:0,average:1
                              }
                   }]

这是我到目前为止为获取最近24小时数据而编写的聚合代码。

EN

回答 1

Stack Overflow用户

发布于 2019-12-05 23:03:35

假设你在创建时有一个时间戳,这很容易,使用$group

代码语言:javascript
复制
db.collection.aggregate([
    {
        $group: {
            _id: {$hour: "$timeField"},
            avg: {$avg: "$tempature"}
        }
    }
])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59197013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档