在mongodb中保存或更新文档时如何防止更新“updatedAt”字段?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mongodb中保存或更新文档时如何防止更新“updatedAt”字段?相关的知识,希望对你有一定的参考价值。
我想在mongodb更新集合文件,但我不希望更新“updatedAt”字段。我想保留更新字段的先前值。请帮忙。
答案
如果您正在使用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)
})
});
另一答案
当您使用mongoose的更新查询时,updatedAt字段会更新。如果我们直接使用$set查询它只会更新$ set query中提到的字段。原因是updatedAt字段由mongoose管理,而不是由mongodb管理。
以上是关于在mongodb中保存或更新文档时如何防止更新“updatedAt”字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java 对 MongoDB 中的文档进行批量更新?