【问题标题】:MongoJS Node findOne falsely returns no resultsMongoJS 节点 findOne 错误地返回无结果
【发布时间】:2014-10-12 06:11:29
【问题描述】:

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

找到一切

db.users.find({}, function(err,users){ if (err) 抛出错误; 控制台.log(用户); })

返回用户。看起来不错

[{ _id: 53f2faa6aed1689e84982b8b, Facebook: { 电子邮件:'myname@gmail.com', 名称:“胡安·阿特金斯”, id: '764969936' }, __v: 0 }]

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

db.users.findOne({ _id: '53f2faa6aed1689e84982b8b' },功能(错误,用户){ if (err) 抛出错误; 控制台.log(用户); });

returns []

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

【问题讨论】:

    标签: javascript node.js mongodb express mongojs


    【解决方案1】:

    你必须使用 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);
    });
    

    【讨论】:

    • 好电话,但我试过了ReferenceError: ObjectID is not defined
    • @MatthewNolan 然后你需要使用驱动模块中的函数来定义它:var ObjectID = require('mongodb').ObjectID;
    • 我正在使用包装器 mongojs。他们确实建议做类似的事情,但是当我尝试时,它说它没有方法 ObjectJD。 db.users.findOne({ _id: mongojs.ObjectID('53f2faa6aed1689e84982b8b') }, function(err, user) { if (err) throw err; console.log(user); });
    • 嗯,这个API有不同的字母大小写:mongojs.ObjectId('523209c4561c640000000001')
    猜你喜欢
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多