【发布时间】:2019-01-12 11:08:53
【问题描述】:
我从这段代码中得到了数据:
db.getCollection('lampus').aggregate([
{
$unwind: '$data'
},
{
$match: {_id: "sensor-2",
'data.tanggal': {
$gt: (new Date(new ISODate()-1*1000*60*60*24))
}
}
},
{
$sort: {
'data.tanggal': 1
}
},
])
结果是:
[{"_id":"sensor-2","data":{"sensor":
{"intensitas":3,"arus":0.05},"tanggal":"2018-08-05T14:05:58.757Z"}},
{"_id":"sensor-2","data":{"sensor":
{"intensitas":11,"arus":0.05},"tanggal":"2018-08-05T14:05:58.756Z"}},
{"_id":"sensor-2","data":{"sensor":
{"intensitas":8,"arus":0.05},"tanggal":"2018-08-05T14:05:52.654Z"}},
{"_id":"sensor-2","data":{"sensor":
{"intensitas":13,"arus":0.05},"tanggal":"2018-08-05T14:05:51.152Z"}},
{"_id":"sensor-2","data":{"sensor":
{"intensitas":15,"arus":0.05},"tanggal":"2018-08-05T14:05:46.651Z"}},
{"_id":"sensor-2","data":{"sensor":
{"intensitas":13,"arus":0.1},"tanggal":"2018-08-04T14:05:45.150Z"}}]
有很多“_id:sensor-2”,因为上面代码中的 $unwind 操作。 任务是: 1.有一个“intensitas”值,我怎样才能从所有对象中$avg所有“intensitas”? 2.我如何实现对NodeJs的查询,因为这是来自mongodb的“ISODate”格式,因为当我在nodeJs中尝试“ISODate is undefined”时。
【问题讨论】:
-
在此聚合结束时,在
intensitas上执行$group和$avg。对于 ISODate - 它来自 mongoDB 客户端。