Постановка задачи: Опция рода collection.findAndModify() всегда обновляет наименьшее значение в данных документах MongoDB.Nodejs MongoDB findAndModify опция сортировки не работает
Пример данных:
{ "State" : "Florida", "Temperature" : 83 }
{ "State" : "Florida", "Temperature" : 28 }
{ "State" : "Florida", "Temperature" : 82 }
{ "State" : "Any other", "Temperature" : 58 }
{ "State" : "Florida", "Temperature" : 33 }
Требование:
Добавить month_high: правда, против самой высокой температуры док.
NodeJS код:
var query = {
'State': "Florida"
};
var sort = ['Temperature', 'desc'];
var operator = {
'$set': {
'month_high': true
}
};
var options = {
'new': true
};
db.collection('readings').findAndModify(query, sort, operator, options, function(err, doc) {
if (!doc) {
console.log('no doc');
} else {
console.log(doc);
};
});
Результат всегда одинаковый, т.е. документ с низкой температурой обновляется. С приведенными выше данными результат: { "State" : "Florida", "Temperature" : 28, "month_high" : true }
Теперь, чтобы проверить поведение сортировки, я также изменил его в порядке возрастания, но тот же результат, он всегда поднимает наименьшую температуру, независимо от того, какой порядок данных до или после сортировки.
Вопрос:
Можете ли вы сказать мне, что и где я делаю неправильно?
я могу использовать обходной путь или два, но я действительно хотел бы видеть findAndModify сортировки вариант работы. Благодарю. –