Per ottenere i post creati nelle ultime 24 ore, puoi ottenere l'ora corrente, sottrarre 24 ore e ottenere il valore della data di inizio da utilizzare nella query dell'intervallo di date:
var start = new Date(new Date().getTime() - (24 * 60 * 60 * 1000));
Post.find({ "created_at": { "$gte": start } }).exec(callback);
Se vuoi saperne di più su $gte
, controlla il seguente articolo:
Con momentjs libreria questo può essere semplicemente
var start = moment().subtract(24, 'hours').toDate();
Post.find({ "created_at": { "$gte": start } }).exec(callback);
Puoi anche definire una data predefinita con una funzione al posto del middleware pre hook:
var post = new mongoose.Schema({
text : String,
created_at : {type : Date, default: Date.now, index : true},
pos : {latitude: Number, longitude: Number},
created_by : {type : Schema.Types.ObjectId, ref : "UserSchema"}
});