2016-01-17 2 views
2

Я бы установить мин значение, максимальное значение и приращение счетчика в пределах документа с одним обновлением, но не могу найти правильный синтаксисMongoose 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

Ваш код отлично работает, когда я пытаюсь его использовать. Оператор '$ min' был добавлен в MongoDB 2.6, вы используете версию старше этого? – JohnnyHK

+0

Спасибо, вот в чем проблема, я использую 2.4.10 на пи. Я не думал запускать команду вручную в самой манго, но да $ max и $ min недействительны. Если вы установите это как ответ, я приму это. – Bacon

ответ

3

Ваш код в порядке, но операторы $min$max) были представлены в MongoDB 2.6 и вы используете 2.4.10.

Смежные вопросы