ACTUALIZACIÓN: (5 años después)
ACTUALIZACIÓN: (4 años después)
Si usa ObjectId
como su _id
(que suele ser el caso), entonces todo lo que necesita hacer es:
let document = {
updatedAt: new Date(),
}
Verifique mi respuesta original a continuación sobre cómo obtener la marca de tiempo creada del _id
campo. Si necesita usar ID de un sistema externo, consulte la respuesta de Roman Rhrn Nesterov.
ACTUALIZACIÓN: (2,5 años después)
Ahora puede usar la opción #timestamps con la versión de mongoose>=4.0.
let ItemSchema = new Schema({
name: { type: String, required: true, trim: true }
},
{
timestamps: true
});
Si se establecen marcas de tiempo, mongoose asigna createdAt
y updatedAt
campos a su esquema, el tipo asignado es Date
.
También puede especificar los nombres de los archivos de marca de tiempo:
timestamps: { createdAt: 'created_at', updatedAt: 'updated_at' }
timestamp
/version
archivado y luego establecer un deleted
campo a true
. De manera similar, si desea actualizar un documento, cree uno nuevo con los campos apropiados actualizados y el resto de los campos copiados. Luego, para recuperar este documento, obtendrá el que tiene la marca de tiempo más reciente o la versión más alta que no está "eliminada". (el deleted
el campo no está definido o es falso`).
La inmutabilidad de los datos garantiza que sus datos se puedan depurar:puede rastrear el historial de cada documento. También puede retroceder a la versión anterior de un documento si algo sale mal. Si opta por una arquitectura de este tipo ObjectId.getTimestamp()
es todo lo que necesita, y no depende de Mongoose.
RESPUESTA ORIGINAL:
Si está utilizando ObjectId como su campo de identidad, no necesita created_at
campo. Los ObjectIds tienen un método llamado getTimestamp()
.
ObjectId("507c7f79bcf86cd7994f6c0e").getTimestamp()
Esto devolverá el siguiente resultado:
ISODate("2012-10-15T21:26:17Z")
Más información aquí ¿Cómo extraigo la fecha de creación de un ObjectID de Mongo?
Para agregar updated_at
archivado necesitas usar esto:
var ArticleSchema = new Schema({
updated_at: { type: Date }
// rest of the fields go here
});
ArticleSchema.pre('save', function(next) {
this.updated_at = Date.now();
next();
});