findByIdAndUpdate并重新计算平均温度

时间:2017-04-02 18:45:07

标签: node.js mongodb mongoose

我有问题通过Mongoose对mongo进行查询。

我在我的对象数组上推送一个新对象,我想更新平均值(数组中我的对象中的温度字段)。型号:

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

    type:['object']

}})

我用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)
                    })
                })
            }

        });

提前感谢您的回答!

0 个答案:

没有答案