在mongodb中保存或更新文档时如何防止更新“updatedAt”字段?

问题描述 投票:3回答:2

我想在mongodb更新集合文件,但我不希望更新“updatedAt”字段。我想保留更新字段的先前值。请帮忙。

node.js mongodb mongoose
2个回答
1
投票

如果您正在使用Waterline或其他数据库抽象,我的建议是在mongo中本地运行查询。

这是我在Sails.js(运行Waterline)中解决这个问题的方法:

let someQuery = {name: 'John Doe'}; 

MyModel.native(function (err, collection){
  collection.update(
    {query: someQuery},                   // Which documents to update?
    {$set:{field1: "value", foo:"bar"}},  // Our new values
    {multi: true},                        // To support update of multiple fields
    function(err, result){
      if (err) console.log(err)
      else console.log(result.result)
    })
});

1
投票

当您使用mongoose的更新查询时,updatedAt字段会更新。如果我们直接使用$set查询它只会更新$ set query中提到的字段。原因是updatedAt字段由mongoose管理,而不是由mongodb管理。

© www.soinside.com 2019 - 2024. All rights reserved.