我究竟做错了什么?

在下面的功能中,我必须调整newMsg.payload。

确实,我想调整day.0.0。温度/湿度:第一个0是小时的占位符,第二个0是分钟的占位符。
我可以根据需要获得小时/分钟,问题是要更换它们。

var newMsg = {};
newMsg.collection = 'collection_name';
newMsg.operation  = 'update';
newMsg.payload    =    { "account" : "marco",
     "sensorId" : "1"
   },
   { '$set': { "day.0.0.temperature": 11 ,
                "day.0.0.humidity": 11 }
   },
   { upsert: true, multi: false
   };


这是我尝试过的方法,它不起作用。

var newMsg = {};
newMsg.collection = 'collection_name';
newMsg.operation  = 'update';
newMsg.payload    =    { "account" : "marco",
     "sensorId" : "1"
   },
   { '$set': { "day." + h + "." + m + ".temperature": 11 ,
                "day." + h + "." + m + ".humidity": 11 }
   },
   { upsert: true, multi: false
   };


谢谢

最佳答案

这就是我使它工作的方式。

  { "\'$set\'": { "day" :  { [h] : { [m] : { "temperature" : msg.data.temperature } } },
                    "day" : { [h] : { [m] :{ "humidity" : msg.data.humidity } } }
}


问候

09-12 13:32