我正在尝试使用Mongoose在我的Node.js项目中使用the $max update operator,但我认为a)我要么做一些可怕的错误或b)Mongoose不支持这个功能。 (以此为例):
var updateGameScores = function(game, newScore, callback) {
models.Scores.update({
gameName: game
}, {
$set: {
$max: {
highestScore: newScore
}
}
}, {
upsert: true
}, function(err) {
callback(err);
});
};
给我以下错误:
MongoError: The dollar ($) prefixed field '$max' in '$max' is not valid for storage.
我在Mongoose文档中找不到任何关于此(或类似功能)的内容,这表明Mongoose不支持此功能。 如果确实如此,有没有其他方法可以实现这个**,同时最大限度地减少数据库操作的数量?
**:“如果指定的值大于字段的当前值,则将字段的值更新为指定值”
提前致谢。
答案 0 :(得分:1)
考虑将更新表达式编写为
{ $max: { highestScore: newScore } }
由于$ max运算符已经隐含$set
。