我有一个休息服务,可以将所有事件存储在一个mongodb中并对它们进行排序,但是如何在当前日期和时间之后不显示这些事件?
//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);
});
});
答案 0 :(得分:1)
答案 1 :(得分:0)
首先,您需要在事件模型中添加created
(或者您想将其命名为createdAt
等)。您可以使用这样的函数自动设置保存日期:
var eventSchema = new mongoose.Schema({...});
eventSchema.pre('save', function(next) {
var currentDate = new Date();
this.created = currentDate;
next();
});
将此功能放在您定义猫鼬模型的位置下。
然后您可以使用MongoDB支持的$lt
(小于)选项:
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);
});
});
参考: