我有一个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
?
答案 0 :(得分:3)
MongoDB支持"dot notation"来指定子文档中的字段。同样的原则适用于普通对象或对象数组:
Model.findByIdAndUpdate(id,{ "$set": { "game.money" },function(err,doc) {
});
$set
运算符也只更新指定的字段,而不会影响文档的其余部分并覆盖整个内容。
另请参阅其他field update operators,例如$inc
,以增加或减少现有数字。