我在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));
答案 0 :(得分:1)
var d = new Date() - 60 * 60 * 1000;
返回一个数字(unix时间戳),而不是实际的日期。
鉴于您的架构,看起来您在数据库中存储了实际日期,因此您需要进行时间戳数学运算,然后转换回日期:
var d = new Date(Date.now() - 60 * 60 * 1000);