0
{
"_id": {
"$oid": "5654a8f0d487dd1434571a6e"
},
"ValidationDate": {
"$date": "2015-11-24T13:06:19.363Z"
},
"DataRaw": " WL 00100100012015-08-28 02:44:17+0000+ 16.81 8.879 1084.00",
"ReadingsAreValid": true,
"locationID": " WL 001",
"Readings": {
"pH": {
"value": 8.879
},
"SensoreDate": {
"value": {
"$date": "2015-08-28T02:44:17.000Z"
}
},
"temperature": {
"value": 16.81
},
"Conductivity": {
"value": 1084
}
},
"HMAC":"ecb98d73fcb34ce2c5bbcc9c1265c8ca939f639d791a1de0f6275e2d0d71a801"
}
내 목표는 다음 달, 년 주당, 매 2 시간 간격의 평균 온도를 계산하는이 데이터를 몽고 집계에 새로운 오전있다. 다양한 쿼리를 시도했지만 행운이 없습니다. 이것은 내가 지금까지
data.aggregate([{"$unwind":"$Readings"},
{"$project":{"HourRecord":{"$hour":"Readings.SensoreDate.value"},
"YearRecord":{"$year":"$Readings.SensoreDate.value"}}},
{'$group' : {'_id' : "$locationID",
'AverageTemp' : { '$avg' : '$Readings.temperature.value'}}}
])
을 시도하고 나는 다른 여러 가지 조합을 시도했지만 여전히 빈 결과를 가지고이
{u'ok': 1.0, u'waitedMS': 0L, u'result': [{u'AverageTemp': None, u'_id': None}]}
처럼 빈 결과를 얻었다 것입니다.
다음 쿼리
두 시간 간격 대신 한 시간test_Agg.aggregate([{"$unwind":"$Readings"},
{"$project":{ "HourRecord": { "$hour":"$Readings.SensoreDate.value"},
"YearRecord": {"$year":"$Readings.SensoreDate.value"},
"MonthRecord": {"$month":"$Readings.SensoreDate.value"},
"locationID" : 1,
"Readings.pH.value":1,
'Readings.temperature.value' : 1}
},
{'$group' : {'_id' :"$HourRecord",
'AverageTemp' : { '$avg' : '$Readings.temperature.value'}}
}])
덕분에이 일했다. 나는 매 시간마다 수치를 그룹화하려고 시도했지만 매 2 시간마다 그것을 어떻게 할 것인가. 몇 가지 옵션을 시도했지만 얻을 수는 없습니다. – user1895915
감사합니다. $ locationID가 아닌 두 시간 간격으로 그룹화하려면 어떻게해야합니까? 위의 쿼리는 매시간, 매월, 주마다 작동합니까? – user1895915