I have the following message schema in mongoose:
var messageSchema = mongoose.Schema({
  userID: { type: ObjectId, required: true, ref: 'User' },
  text:   { type: String, required: true }
},
{
  timestamps: true
});
Is there anyway to ignore the updatedAt timestamp? Messages won't be updated so updatedAt will be wasted space
Maybe even better with Mongoose v5 is to do the following;
const schema = new Schema({   // Your schema... }, {   timestamps: { createdAt: true, updatedAt: false } }) 
                        Edit I've amended the answer to reflect the better option to use the default as per @JohnnyHK
You can handle this yourself by declaring the createdAt (or whatever you want to call it) in your schema:
mongoose.Schema({
  created: { type: Date, default: Date.now }
  ...
Alternatively we can also update values on new document in a pre save hook:
messageSchema.pre('save', function (next) {
  if (!this.created) this.created = new Date;
  next();
})
Along those lines is also the flag isNew which you can use to check if a document is new.
messageSchema.pre('save', function (next) {
  if (this.isNew) this.created = new Date;
  next();
})
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With