Mongo Node在时间戳的1小时内查询

时间:2014-10-14 15:09:32

标签: javascript node.js mongodb mongoose

我在1小时前查找当前时间内所有对象的查询(基于时间戳)不返回数据:

架构:

var visitSchema = mongoose.Schema({
  timestamp: { type: Date, default: Date.now },
  userID: String,
  userName: String,
  worldID: String
});

Node + Mongoose后端:

    var d = new Date() - 60 * 60 * 1000; //1 hour ago (from now)

    var qw = {
      timestamp: { 
          $gt: d
      },
      worldID: req.query.worldID
    }    
    db.collection('visits').find(qw).sort({_id: -1}).toArray(fn(req, res));

1 个答案:

答案 0 :(得分:1)

var d = new Date() - 60 * 60 * 1000;返回一个数字(unix时间戳),而不是实际的日期。

鉴于您的架构,看起来您在数据库中存储了实际日期,因此您需要进行时间戳数学运算,然后转换回日期:

var d = new Date(Date.now() - 60 * 60 * 1000);