我有这样的mongodb数据:
"_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天/分钟的数据的平均值。
发布于 2018-08-05 10:00:45
要获取最近2天,您可以这样做:
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))
https://stackoverflow.com/questions/51690675
复制相似问题