目前被这个错误推上了墙。
我正在使用mongodb的mongojs包装器运行node.js应用程序。我在默认端口上启动了mongod,然后运行
var db = require('mongojs').connect('localhost:27017/my_db');
var users = db.collection('users');
users.findOne({'fb_id' : fbUserMetadata.id}, function(err, user) {
console.log(err);
console.log(user);
debugger;
});
然而错误和用户都是'null'。据我所知,错误应该填充某种数据,即使它没有找到任何数据。
如何让回调功能正常工作?请原谅新手问题。
答案 0 :(得分:10)
当findOne
查询找不到至少一个匹配文档时,回调的第二个参数(在本例中为user
)设置为null
。这不是错误,因此err
也是null
。所以你所看到的是预期的不匹配发现的响应。
<强>更新强>
请注意,findOne
已在2.0驱动程序中弃用,但其替换也表现出同样的行为:
users.find({'fb_id' : fbUserMetadata.id}).limit(1).next(err, doc) {
// doc is null if a matching document wasn't found
});