Mongoose似乎不支持$ max字段更新运算符,任何建议?

时间:2014-06-08 19:05:12

标签: javascript node.js mongodb mongoose

我正在尝试使用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不支持此功能。 如果确实如此,有没有其他方法可以实现这个**,同时最大限度地减少数据库操作的数量?

**:“如果指定的值大于字段的当前值,则将字段的值更新为指定值”

提前致谢。

1 个答案:

答案 0 :(得分:1)

考虑将更新表达式编写为

{ $max: { highestScore: newScore } }

由于$ max运算符已经隐含$set