Sunday, 2 April 2017

findByIdAndUpdate and recalculate avarage temperature

I have a problem to do a query to mongo via Mongoose. I push a new object on my array of object and i want to update the avarage media (of temperature field in my object in the array). Model:

var sensDaySchema= new mongoose.Schema({
date: {
    type:'date',
    required:true
},
avgTemperature:{
    type:'number',
    required:true
},
avgHumidity:{
    type:'number',
    required:true
},
dayDatas:{

    type:['object']

}})

i have started this with mongoose:

sensDayModel.findByIdAndUpdate( resultFind[0].id,{$push:{"dayDatas":args}},function(err,result){ if (err) next(err,null) else{

                sensDayModel.aggregate({$group:{_id:resultFind[0].id,date:"$date",avgTemperature:{$avg:"$dayDatas.temperature"},avgHumidity:{$avg:"$dayDatas.humidity"},dayDatas:"$dayDatas" }},function(err,result){
                    result.save(function(err,result){
                        if (err) next (err,null)
                        else next (null,result)
                    })
                })
            }

        });

thanks in advance for answers!



via Ale

No comments:

Post a Comment