从现在到两小时前创建的MongoDB查询文档

从现在到两小时前创建的MongoDB查询文档,mongodb,mongoose,Mongodb,Mongoose,我的节点中有一个mongodb查询,它根据以下几个条件查找文档: Follow.find({ user: req.user._id , followed: req.params.userId }).populate(populateQuery).exec(function (err, results) { next.ifError(err); //res.send(results); if(results.length > 0){ c

我的节点中有一个mongodb查询,它根据以下几个条件查找文档:

Follow.find({
    user: req.user._id
    , followed: req.params.userId
}).populate(populateQuery).exec(function (err, results) {
    next.ifError(err);
    //res.send(results);
    if(results.length > 0){
        console.log('****** found!!!');
        console.log(results);
    }
});
所以这很好用。但是我需要找到从现在到两小时前才创建的记录。 如何正确格式化查询对象中的日期对象

{
    user: req.user._id
    , followed: req.params.userId
    ,dateCreated: {
        $gte: ISODate(<TWO HOURS AGO>),
        $lt: ISODate(<NOW>)
    }
}
{
用户:请求用户。\u id
,后跟:req.params.userId
,创建日期:{
$gte:ISODate(),
$lt:ISODate()
}
}

创建两个日期对象,分别表示现在和2小时前的日期时间,如下所示:

// Define
var TWO_HOURS = 2*60*60*1000, // milliseconds
    now = new Date(),
    twoHoursAgoDate = new Date(now.getTime() - TWO_HOURS);

Follow.find({
        user: req.user._id,
        followed: req.params.userId,
        dateCreated: { $gte: twoHoursAgoDate, $lt: now }
    }).populate(populateQuery).exec(function (err, results) {
        next.ifError(err);
        //res.send(results);
        if(results.length > 0){
            console.log('****** found!!!');
            console.log(results);
        }
    });
更好的方法是使用简化日期时间操作的库,尤其是使用方法:

// Define
var now = moment(),
    twoHoursAgoDate = moment().subtract(2, 'hours');