传入ID时,Mongoose findOne()回调返回null

时间:2015-09-03 14:46:06

标签: javascript node.js mongodb

使用mongoose的findOne()返回存在的mongo中的对象。当传入我使用的ID时,findOne()始终返回null。 我不确定如何解释它,所以以下是它何时起作用但不起作用的例子:

这是我的主要功能:

h1 {
    font-size: 10em;
}

以下是正在使用的findOne()查询,但是一个有效,而另一个没有。

此功能正常工作并成功返回" ret"输入并将其打印在屏幕上。

function main() 
{
    var db = mongoose.connection;
    pullOneDoc(db, '639438443613851600');
}

以下代码不会返回' ret'作为doc,但始终返回null。 console.log为"值"显示数字完全相同,只是没有硬编码。

function pullOneDoc(db, value)
{
    console.log(value);
    db.collection('Tweet').findOne({id:639442211910717400},function (err, ret) {
     console.log(ret);
     if(err) console.log('error: ',err);
    });
}

检查mongo本身(使用mongo中的findOne函数),我可以成功找到ID,所以我知道它在那里。 究竟是什么导致一个人工作而不是另一个?我知道javascript是asnyc,但是控制台日志中的值表明该值是正确传递的。我试过if语句if(value!= null),然后执行查询,但是也没有用。

谢谢!

解决 如果我正在寻找一个Int ID类型

,我不应该传递任何字符串作为字符串
function pullOneDoc(db, value)
{
    console.log(value);
    db.collection('Tweet').findOne({id:value},function (err, ret){
     console.log(ret);
     if(err) console.log('error: ',err);
   });
}

0 个答案:

没有答案