【问题标题】:mongoose Update object without "drop"没有“drop”的猫鼬更新对象
【发布时间】:2016-07-13 18:52:19
【问题描述】:

我遇到了 mongoose 和更新文档的问题。

当我更新集合中的一个对象时,它会“清除/删除”该对象,并用要更新的对象填充它。但我需要“添加/合并”对象。

例如:

Model.update({name: "hello"}, {
  name: "hello",
  datum: {
    updated: Date.now(),
    //added: Date.now()
  }
}, function(err, data){
  
  console.log(err, data);
  
});

这将我的“基准”对象替换为字段:“更新。 “添加”文件被删除。为什么 ? 如何更新嵌套的“基准”对象?

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    您需要使用$set 运算符。如果您不指定它,与您的查询文档(第一个参数)匹配的第一个文档将被您的更新文档(第二个参数)替换:

    Model.update({name: "hello"}, {
      $set: {
          "datum.updated": Date.now()
      }
    }, function(err, data){
        console.log(err, data);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-14
      • 2021-08-19
      • 2021-12-31
      • 2014-07-13
      • 2020-09-06
      • 1970-01-01
      相关资源
      最近更新 更多