0
MongoDb時系列集約で平均を取ることができるのだろうかと思います。たとえば、毎分の平均的な一時的な時間を示す集合体です。MongoDB集約(時間と平均)
私のデータは次のようになります。の出力で
[
{
"_id": "57fbebf99929a71d305e2bb2",
"temp": 23.77,
"dateTime": "2016-10-10T19:28:57.923Z",
"_dateTime": 1476127737000
},
{
"_id": "57fbebfa9929a71d305e2bb3",
"temp": 27.16,
"dateTime": "2016-10-10T19:28:58.838Z",
"_dateTime": 1476127738000
},
{
"_id": "57fbebff9929a71d305e2bb4",
"temp": 31.93,
"dateTime": "2016-10-10T19:29:03.848Z",
"_dateTime": 1476127743000
}
]
コード(ジャバスクリプト)これまでのところ、このようになります。..
var results = temperatures.aggregate(
[
{ $project : { "timeSpan" : {$add : [new Date(0),"$_dateTime"] } } },
{ $project : { "minuteRead" : { $minute : "$timeSpan" }} },
{
$group : {
_id : {minuteRead : "$minuteRead" },
count : { $sum : 1 }
}
}
],
function(err, result) {
console.log(result);
}
);
:
[ { _id: { minuteRead: 30 }, count: 7 },
{ _id: { minuteRead: 29 }, count: 12 },
{ _id: { minuteRead: 28 }, count: 2 } ]
しかし、どのような私は持っていたい:
[ { _id: { minuteRead: 30 }, avgTemp: 17.6 },
{ _id: { minuteRead: 29 }, avgTemp: 18.3 },
{ _id: { minuteRead: 28 }, avgTemp: 20.1 } ]
これは可能ですか?
ありがとうございました!
私もそう思っていましたが、$ temp値はアクセス可能ではないようです。それを$プロジェクトに追加する必要がありますか? '{_id:{minuteRead:28}、avgTemp:null} {0} {0} {0} {0} {0} {0} {0} {0} }] ' – wmmhihaa