修士db.find无法正常工作

时间:2017-01-15 05:55:21

标签: node.js mongodb monk

我正试图从我的一个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找不到它。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,显然当我在我引用的某个字段(令牌)中有ObjectId()时,它无法正常工作。所以我使用代码ObjectId().toHexString()并将其存储到数据库中,使其看起来像5824b9f7611202236ec99c7e而不是ObjectId("5824b9f7611202236ec99c7e")。希望这有帮助!