隐藏事件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