Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

273
Views
how to prevent updating of "updatedAt" field while saving or updating documents in mongodb?

I am in a situation where i want to update documents of collection in mongodb but i don't want "updatedAt" field to be updated. I want to retain the previous value of updated field. Please help.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

If you are using Waterline or other database abstractions, my advice is to run the query natively in mongo.

This is how I would fix this in Sails.js (running 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)
    })
});

over 4 years ago · Santiago Trujillo Report

0

updatedAt field is updated when you use update query of mongoose. if we directly use $set query it will only update the mentioned fields inside $ set query. The reason is updatedAt field is managed by mongoose not by mongodb.

over 4 years ago · Santiago Trujillo Report

0

If you are using mongoose, then relatively new feature (2020) gives you the option to override setting timestamps (or just one) on transactions.

Refer to docs

Example from docs shown below

const userSchema = mongoose.Schema({
  email: String
}, { timestamps: true });

const User = mongoose.model('User', userSchema);

const doc = await User.findOneAndUpdate({email: 'test@google.com'}, {email:'newtest@google.com'}, 
{new:true, upsert: true, timestamps:false});
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!