我试图通过对此集合运行查询来查找过期的会话
{
"_id" : ObjectId("4e4e88b81144e5a658000000"),
"__meta" : {
"id" : "3a72c90f8455e2fd4b8a05ffa04b870a8672f1a9",
"expiration" : "3600",
"timestamp" : 1313769656
}
}
查询
db.sessions.find({$where: function(){
return (this.__meta.timestamp + this.__meta.expiration) <= Math.round(new Date().getTime()/1000);
}})
我期待收集,但我得到一个空的结果。
答案 0 :(得分:3)
您可以使用javascript parseInt()
函数将字符串转换为整数。一定要以parseInt(my_string, 10)
的形式使用它,其中第二个参数是整数基数;它的默认行为是自动检测基数,因此像“0400”这样的字符串被解释为八进制,而不是十进制。
答案 1 :(得分:1)
您可能最好在数据库中存储expirationtime
,以便轻松(高效)查找过期记录。