首页 > 解决方案 > 尝试删除/更新文档时出现“mongoError:拓扑被破坏”

问题描述

我正在尝试从使用 MongoDB 作为其数据库的 NodeJS 制作一个不和谐的机器人。当我尝试删除或更新文档时,有时会返回mongoError: Topology was destroyed. 我之前已经阅读过这个错误,它说连接被中断。

这是我的数据库处理程序的代码:

class DatabaseHandler {
    constructor(client) {
        this.client = client; 
    }

    async connect(callback) {
        try {
            await this.client.connect(); 

            await callback(this.client); 
        } catch (err) {
            console.error(err); 
        } finally {
            this.client.close(); 
            console.log("CLIENT CLOSED"); 
        }

    }
}

module.exports = DatabaseHandler; 

这里是发生错误的地方:

DB.connect(async (client) => {
    console.log(ObjectId(this._id));
    let DBList = await client.db("Giveaways").collection("giveawayData");
    let delVal = {
        _id: ObjectId(this._id)
    };
    await DBList.deleteOne(delVal); // error occurs here
})

我不认为是this.client.close()因为它是在所有操作完成后执行的。

标签: javascriptnode.jsmongodbdiscord.js

解决方案


推荐阅读