在MongoDB Collection中,我有一个Date对象,它记录了事件的日期和时间。我试图根据具体日期进行查询,并忽略时间,即显示今天的所有事件。
Model.js
var EventSchema = new Schema({
eventName : String,
eventDate : Date,
eventLocation : String,
eventLocationGeo : String,
eventCreator : ObjectId
});
我的主要 app.js 正在寻找Unix时间戳格式的日期。
//Get Events based on Unix Time Stamp Date
app.get('/events/date/:date', passportConf.isAuthenticated, function(req, res){
var user = req.user._id;
var date = req.params.date;
console.log('date - ' + date);
eventController.getEventsByDate(user, date, req, res);
});
典型的REST调用
http://localhost/events/date/1410764400
大多数参考文章都引用了使用$ gte和$ lt但是没有在哪里提及如何剥离时间以便我的查询最终根据完整的日期和时间拉出24小时。
答案 0 :(得分:0)
我建议您使用moment.js library中的moment.unix(req.params.date).startOf('day').toDate()
和moment.unix(req.params.date).endOf('day').toDate()
,这非常有用。
只需ECMAScript日期,即可:
var start = new Date(req.params.date);
start.setHours(0);
start.setMinutes(0);
start.setSeconds(0);
start.setMilliseconds(0);