MongoJS节点findOne错误地返回没有结果

时间:2014-08-19 08:02:33

标签: javascript node.js mongodb express mongojs

使用MongoJShttps://github.com/mafintosh/mongojs

找到一切


    db.users.find({}, function(err,users){
        if (err) throw err;
        console.log(users);
    })

返回用户。看起来很棒


    [{ _id: 53f2faa6aed1689e84982b8b,
        facebook: { 
            email: 'myname@gmail.com',
            name: 'Juan Atkins',
            id: '764969936' },
        __v: 0 
    }]

  

当我尝试通过他的id找到该用户时:失败


    db.users.findOne({
        _id:  '53f2faa6aed1689e84982b8b'
    }, function(err, user) {
        if (err) throw err;
        console.log(user);
    });

returns []

我知道数据库中有数据。我试过用不同的键(比如姓名)搜索。为什么无法找到数据呢?

1 个答案:

答案 0 :(得分:3)

你必须使用ObjectId:http://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html

db.users.findOne({
    _id:  new ObjectID('53f2faa6aed1689e84982b8b')
}, function(err, user) {
    if (err) throw err;
    console.log(user);
});