我正试图从我的一个mongodb字段中抓取ObjectId()
。问题是我知道我想要抓住的是在数据库中,但是说它无法找到。我已经验证了我在db中正在寻找的token
正在工作。
代码:
var _db = db.get('tokens');
console.log('token ' + token);
//token = 587b09875d690d2f4f11849c
_db.find({'token': token}, function(e, docs){
console.log('Docs ' + docs);
if(!e){
if(docs.length > 0){
if(expire < phpTime()){
cb(true);
}else{
console.log('Token has expired');
cb(false);
}
}else{
cb(false);
console.log('Token not found in db');
}
}else{
cb(false);
console.log(e);
}
});
在db中我有:
{
"_id": ObjectId('587b09875d690d2f4f11849d'),
"token": ObjectId('587b09875d690d2f4f11849c'),
"expire": 0
}
我一直得到console.log('Token not found in db');
。我真的迷失了为什么它在数据库中,它正在寻找的令牌是相同的但是_db.find
找不到它。
答案 0 :(得分:0)
我找到了解决方案,显然当我在我引用的某个字段(令牌)中有ObjectId()
时,它无法正常工作。所以我使用代码ObjectId().toHexString()
并将其存储到数据库中,使其看起来像5824b9f7611202236ec99c7e
而不是ObjectId("5824b9f7611202236ec99c7e")
。希望这有帮助!