Una forma de lograr esto es utilizar Mongoose Middleware y actualizar el campo antes de guardar.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
//schema
var SomethingSchema = new Schema({
text: {type: String},
createdAt: {type: Date, default: Date.now},
updatedAt: {type: Date, default: Date.now}
});
//middle ware in serial
SomethingSchema.pre('save', function preSave(next){
var something = this;
something.updatedAt(Date.now());
next();
});
Parece, sin embargo, que el middleware no siempre se invoca:
Notas sobre findAndUpdate()
pre
y post
no son llamados para operaciones de actualización ejecutadas directamente en la base de datos, Incluyendo Model.update
, .findByIdAndUpdate
, .findOneAndUpdate
, .findOneAndRemove
, y .findByIdAndRemove
. Ordenan utilizar middleware pre
o post
, usted debe find()
el documento, y llamar a los init
, validate
, save
o remove
funciones en el documento. Ver explanation.
Actualización: Ver esta pregunta "add created_at and updated_at fields to mongoose schemas"
Lo sentimos, no creo que esto responde a la pregunta. La pregunta no era "¿cómo creo una cadena ISO?". –
Esta es la forma de crear una cadena ISO válida para insertar en Mongo. – greenimpala