首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从mongodb数组获取最近2天/分钟

从mongodb数组获取最近2天/分钟
EN

Stack Overflow用户
提问于 2018-08-05 09:04:33
回答 1查看 102关注 0票数 0

我有这样的mongodb数据:

代码语言:javascript
复制
"_id" : "sensor-2",
"data" : [ 
    {
        "sensor" : {
            "intensitas" : 3,
            "arus" : 0.1
        },
        "tanggal" : ISODate("2018-08-05T21:00:19.552+07:00")
    }, 
    {
        "sensor" : {
            "intensitas" : 8,
            "arus" : 0.1
        },
        "tanggal" : ISODate("2018-08-05T21:04:40.594+07:00")
    }, 
    {
        "sensor" : {
            "intensitas" : 6,
            "arus" : 0.1
        },
        "tanggal" : ISODate("2018-08-05T21:05:43.647+07:00")
    }, 
    {
        "sensor" : {
            "intensitas" : 13,
            "arus" : 0.1
        },
        "tanggal" : ISODate("2018-08-04T21:05:45.150+07:00")
    }, 
    {
        "sensor" : {
            "intensitas" : 15,
            "arus" : 0.05
        },
        "tanggal" : ISODate("2018-08-04T21:05:46.651+07:00")
    }, 
    {
        "sensor" : {
            "intensitas" : 13,
            "arus" : 0.05
        },
        "tanggal" : ISODate("2018-08-04T21:05:51.152+07:00")
    }, 
    {
        "sensor" : {
            "intensitas" : 8,
            "arus" : 0.05
        },
        "tanggal" : ISODate("2018-08-04T21:05:52.654+07:00")
    }, 
    {
        "sensor" : {
            "intensitas" : 11,
            "arus" : 0.05
        },
        "tanggal" : ISODate("2018-08-04T21:05:58.756+07:00")
    }, 
    {
        "sensor" : {
            "intensitas" : 3,
            "arus" : 0.05
        },
        "tanggal" : ISODate("2018-08-07T21:05:58.757+07:00")
    }
]

我想从id中获取数组基数的最后2天或最后2分钟,它是日期在英语中的意思。

我已经尝试了这个how to filter last 10 days records from mongoDb?,但不是我想要的,因为在我得到数据后,我想要取最近2天/分钟的数据的平均值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-05 10:00:45

要获取最近2天,您可以这样做:

代码语言:javascript
复制
db.getCollection('items').aggregate([
  {
      $unwind: '$data'
  },
  {
    $match: {
      'data.tanggal': {
        $gt: (new Date(new ISODate()-2*1000*60*60*24))
      }
    }
  },
  {
    $sort: {
      'data.tanggal': -1
    }
  }
])

最后2分钟,您只需从日期计算中删除24,即可得到:

$gt: (new Date(new ISODate()-2*1000*60*60))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51690675

复制
相关文章

相似问题

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