当前位置: 首页 > 知识库问答 >
问题:

MongoJS节点findOne错误地不返回任何结果

方昊英
2023-03-14

使用mongojs:https://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查找该用户时:failed


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

返回[]

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

共有1个答案

权烨磊
2023-03-14

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

db.users.findOne({
    _id:  new ObjectID('53f2faa6aed1689e84982b8b')
}, function(err, user) {
    if (err) throw err;
    console.log(user);
});
 类似资料:
  • 问题内容: 目前正被此错误推高。 我正在使用mongodb的mongojs包装器运行node.js应用程序。我在默认端口上启动mongod,然后运行 但是err和user都为“ null”。据我所知,err应该填充某种数据,即使找不到任何东西。 如何使回调函数正常工作?请原谅新手问题。 问题答案: 当查询找不到至少一个匹配的文档时,则将回调的第二个参数(在这种情况下)设置为。这不是错误,也是。因此

  • 问题内容: 我正在尝试将.csv文件中的大量数据转储到SQL Server 2012数据库中。我没有进行数千次INSERT的工作,而是在进行调查。 编辑: 这是一个自动化的过程,而不是一次性的。我也没有此数据库的权限。 当我尝试将数据复制到数据库中时,不会返回任何错误,但实际上也不会复制任何内容-它只会返回。我已将其缩减为无法正常工作的最小情况。 首先,创建一个包含两列的简单表: 然后,使用来从中

  • 我试图用Java创建一个XPath表达式(8,默认XPath实现)。我正在做以下工作: 我在同一级别的文档中有多个PartyId节点,因为它的父节点是重复的。我得到了结果,但只有一个节点。(第一)。 补充信息:如果我在表达式的末尾写[$k],比如[1]或[2],我得到了我的元素,但是我需要它们。:( 但是,如果我正在测试同一个XPath,例如http://www.freeformatter.com

  • 问题内容: 我试图逐行获取两个文件之间的差异,Python总是返回false。即使我比较相同的文件,Python(几乎)总是返回false。高飞的例子,但它在Python3.4.3上复制了我的问题。 Python正确地识别出第一行是相同的,但是之后的所有内容都是错误的。有人可以复制吗?有任何想法吗? 问题答案: 第一次迭代结束后,您已经用尽了迭代器,需要返回到文件的开头。 你只检查的第一线对的线,

  • 问题内容: 假设我有一个像 然后在主要我有代码 显然,无论json格式不同,上述代码都会产生nil错误。Go中的json.Unmarshal()什么时候返回错误? 问题答案: 如果源中的值与目标中的值不对应,则JSON解码器不会报告错误。例如,如果源包含“状态”字段,这不是错误,但目标没有。 在其他情况下,Unmarshal函数确实会返回错误: 语法错误 类型不匹配 游乐场的例子

  • 问题内容: 它应该返回1000,但是为什么返回5? 问题答案: 是。如果你用它乘,它会溢出类型(因为这的最大值可容纳是比少了很多),你会得到的。 然后,将结果除以,您将得到。 为了解决此问题,您需要明确指定乘法的结果将是-这是因为Java中的所有数字运算符都会产生整数,除非明确指示要产生其他数字类型。 只需在一些操作数上附加a 就足够了: