使用mongoose更新子字段

时间:2014-09-10 07:11:28

标签: javascript node.js mongodb mongoose mongodb-query

我有一个Node.js mongoose架构,如下所示:

var Schema = mongoose.Schema;
var playersSchema = new Schema({
    login: String, 
    pwd: String,
    game: {
        lat: Number,
        lon: Number,
        speed: Number,
        money: Number
    }
});

我想只更新给定元素的game.money字段。我怎么能用findByIdAndUpdate

来做到这一点

1 个答案:

答案 0 :(得分:3)

MongoDB支持"dot notation"来指定子文档中的字段。同样的原则适用于普通对象或对象数组:

Model.findByIdAndUpdate(id,{ "$set": { "game.money" },function(err,doc) {

});

$set运算符也只更新指定的字段,而不会影响文档的其余部分并覆盖整个内容。

另请参阅其他field update operators,例如$inc,以增加或减少现有数字。