【问题标题】:update a subfield with mongoose使用 mongoose 更新子字段
【发布时间】:2017-06-27 21:23:36
【问题描述】:

我有一个如下所示的 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 做到这一点?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    另请参阅$inc 等其他field update operators 以递增或递减现有数字。

    【讨论】:

      猜你喜欢
      • 2020-03-24
      • 1970-01-01
      • 2019-02-26
      • 2020-04-04
      • 2021-07-09
      • 2021-06-21
      • 2021-01-10
      • 2016-09-13
      • 2015-06-10
      相关资源
      最近更新 更多