node.js - tutorial - mongoose virtual
¿Qué SchemaType en Mongoose es mejor para Timestamp? (3)
Me gustaría utilizar este campo para devolver todos los registros que se han actualizado en los últimos 5 minutos.
Esto significa que debe actualizar la fecha a "ahora" cada vez que guarde el objeto. Tal vez lo encuentres útil: complemento creado por Moongoose modificado
Estoy usando Mongoose, MongoDB y Node.
Me gustaría definir un esquema donde uno de sus campos es una fecha / marca de tiempo.
Me gustaría utilizar este campo para devolver todos los registros que se han actualizado en los últimos 5 minutos.
Debido al hecho de que en Mongoose no puedo usar el método Timestamp () entiendo que mi única opción es usar el siguiente método de Javascript:
time : { type: Number, default: (new Date()).getTime() }
Probablemente no sea la forma más eficiente de consultar un DB enorme. Realmente agradecería que alguien pudiera compartir una forma más eficiente de implementar esto.
¿Hay alguna forma de implementar esto con Mongoose y ser capaz de utilizar una marca de tiempo MongoDB?
La versión actual de Mongoose (v4.x) tiene estampado de tiempo como una opción incorporada a un esquema:
var mySchema = new mongoose.Schema( {name: String}, {timestamps: true} );
Esta opción agrega las propiedades createdAt
y updatedAt
que tienen una marca de tiempo con una Date
y que hace todo el trabajo por usted. Cada vez que actualiza el documento, actualiza la propiedad updatedAt
. Schema Timestamps Docs.
Editar - 20 de marzo de 2016
Mongoose ahora admite marcas de tiempo para colecciones .
Por favor, considere la respuesta de @bobbyz a continuación. Tal vez esto es lo que estás buscando.
Respuesta original
Mongoose admite un tipo de Date
(que es básicamente una marca de tiempo):
time : { type : Date, default: Date.now }
Con la definición de campo anterior, cada vez que guarde un documento con un campo de time
configurado, Mongoose completará este campo con la hora actual.