隐藏事件date比今天早在快递和mongoose

我有一个rest服务,获取存储在一个MongoDB中的所有事件,并对它们进行sorting,但是如何不显示当前date和时间?

//return all events router.get('/', function(req, res, next) { Event.find({}, null, {sort: {date: 1}}, function(err, events) { if (err) return next(err); res.json(events); }); }); 

要指出你有一个旧的线程这个

查询mongoose和date

似乎正是你所需要的

首先,你需要添加一个created (或者你想给它命名, createdAt等)到你的事件模型。 您可以使用这样的function自动设置保存date:

 var eventSchema = new mongoose.Schema({...}); eventSchema.pre('save', function(next) { var currentDate = new Date(); this.created = currentDate; next(); }); 

把这个function放在您定义mongoose模型的地方。

然后你可以使用MongoDB支持的$lt (less than)选项:

 router.get('/', function(req, res, next) { // Get date of yesterday var yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); // Find every event that was created yesterday or the days before. Event.find({ created: { $lt: yesterday } }, function(err, events) { if (err) return next(err); res.json(events); }); }); 

参考:

  • stackoverflow.com/questions/17554943/querying-with-mongoose-and-dates
  • stackoverflow.com/questions/17008683/doing-range-queries-in-mongoose-for-hour-day-month-year