javascript - Mongodb findOne 没有结果/抛出 TypeError

标签 javascript node.js mongodb

我是 Node/js/mongo 的新手,所以如果我完全错了,请多多包涵。

我有一个本地 db.js 文件,它使用回调为我提供有关 Mongodb 集合对象的上下文。 该对象有效,并且从我的回调中调用 find() 会按预期将游标返回到 var 游标。但是,以下对 findOne 的调用会为 err 和 res 返回 null。

如果我以类似的方式调用 findOne 来查找,node 会抛出一个 TypeError,提示我没有将回调传递给 findOne。

db.openDB(
function(err, db)
{
    if(err)
    {
        console.log(err);
    }
    else
    {
        var cursor = db.find();
        console.log(cursor);

        db.findOne({}, 
        function(err, res)
        {
            console.log(res);
        });
    }
});

编辑:db.js对于@JohnnyHK 我现在注意到我打开了两次收集队列,但我仍然迷路了,所以看看。

最佳答案

尝试调用 cursor.each() 并查看光标中是否真的有东西。然后尝试在您的 openDB 函数中注释掉 conn.close();。我认为您在获取数据之前关闭了连接。

也试试

db = new mongodb.Db('test', server, {w:1}),

如果您使用的是默认数据库,而不是“队列”。

关于javascript - Mongodb findOne 没有结果/抛出 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24432830/

相关文章:

javascript - jquery POST 两次

javascript - 单击时添加复选标记,删除所有其他标记

node.js - 使用 pm2 读取传递给 node.js 的命令行参数

javascript - 等待使用 puppeteer 显示 Google Captcha

javascript - Meteor 和/private 目录

google-app-engine - GAE Datastore 与 MongoDB 的价格比较

javascript - 错误 : connect. 压缩不是函数

javascript - 检测窗口滚动时到达容器底部

mongodb - Cosmos DB 聚合管道不兼容(Mongo API)?

mongodb - 如何检查何时在 MongoDB 中查找不返回任何内容