2016-01-17 66 views
2

我最好設置一個最小值,最大值和文檔中增加一個計數一次更新,但無法找到正確的語法貓鼬findOneAndUpdate多個字段更新運營商

這適用於遞增計數在文件中:

Temperature.findOneAndUpdate(dailyQuery, 
    { $inc: { temperature_sum : thermometer.temperature, count : 1 }}, 
    {upsert : true}, function(err, dailyTemp) { 
    if (err) throw err; 
    console.error(dailyTemp); 
}); 

我想也設置最低最高值也練練更新命令將沿着

Temperature.findOneAndUpdate(dailyQuery, 
    { $inc: { temperature_sum : thermometer.temperature, count : 1 }, 
     $max :{ max_temp : thermometer.temperature}, 
     $min :{ min_temp : thermometer.temperature}}, 
    {upsert : true}, function(err, dailyTemp) { 
    if (err) throw err; 
    console.error(dailyTemp); 
}); 

行,但我得到

MongoError: exception: Invalid modifier specified $min 

我在這裏錯過了什麼?

+0

當我嘗試它時,您的代碼正常工作。 MongoDB 2.6中增加了'min'運算符,您是否使用比這更早的版本? – JohnnyHK

+0

謝謝你,這就是問題所在,我在pi上使用2.4.10。我不認爲在mongo中手動運行命令本身,但是$ max和$ min是無效的。如果您將此設置爲答案,我會接受它。 – Bacon

回答

3

您的代碼沒問題,但$min(和$max)運算符是在MongoDB 2.6中引入的,並且您使用的是2.4.10。