【问题标题】:MongoError: topology was destroyed, NODEJSMongoError:拓扑被破坏,NODEJS
【发布时间】:2020-10-23 01:17:44
【问题描述】:

我正在试用 MongoDB API,但在尝试使用 insertOne() 函数时遇到了 MongoError: topology was destroyed。我不知道发生了什么,因为我对此很陌生。任何建议或帮助将不胜感激。

const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://email:password@cluster0.9r3f9.mongodb.net";
const client = new MongoClient(uri, { useNewUrlParser: true });


client.connect(mongoError => {

    const col = client.db("mc").collection("mc").insertOne({"license" : "1", "uuid" : 123})
    console.log(col)

});

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    client.connect() 应该接受 errorclient 两个参数,并使用该对象执行查询。此外,由于您本机使用 mongodb 驱动程序(而不是 mongoose),因此您不需要使用 { useNewUrlParser: true }

    即使这不能解决问题,请重新启动您的 mongodb 实例并检查。

    const MongoClient = require("mongodb").MongoClient;
    const uri = "mongodb+srv://email:password@cluster0.9r3f9.mongodb.net";
    const client = new MongoClient(uri);
    
    client.connect((err, client) => {
      if(err) {
        console.error("ConnectionError::", err);
        return;
      }
      const db = client.db("mc");
      db.collection("mc").insertOne({ license: "1", uuid: 123 }, (err, result) => {
        console.log(result);
      });
    });
    

    注意:.insertOne() 是异步操作,也需要回调或async/await 才能正确显示查询结果。

    【讨论】:

    • 我已经尝试过了,但现在它在第 6 行返回 TypeError: Cannot read property 'db' of undefined
    • @MaxPan 你试过重启 mongodb。检查回调是否发送errora dn 有什么client 对象.. 更新代码以检查相同。
    猜你喜欢
    • 2015-09-03
    • 2015-07-09
    • 2016-12-27
    • 2015-08-06
    • 2021-04-30
    • 2019-01-15
    • 2019-11-14
    相关资源
    最近更新 更多