首页 > 解决方案 > MongooseError:操作 `muted-members.insertOne()` 缓冲在 10000 毫秒后超时

问题描述

请帮助我,我想做一个 Automute,但我有一个问题

当静音用户离开服务器时,控制台会给我这个错误:

/Users/Fred/Desktop/Papera Bot/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:149
          const err = new MongooseError(message);
                      ^

MongooseError: Operation `muted-members.insertOne()` buffering timed out after 10000ms
    at Timeout.<anonymous> (/Users/badreddinelaghlid/Desktop/Papera Bot/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:149:23)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7)

然后当用户再次加入服务器时,机器人不会给用户静音角色

我尝试用猫鼬制作这个代码

模型的架构代码:

const client = require("../index");
const Schema = require("../models/muted");

client.on("guildMemberAdd", async(member) => {
    const data = await Schema.findOne({Guild:member.guild.id});
    if (!data) return;
    const user = data.User.findIndex((prop) => prop === member.id);
    if (user == -1) return;
    let muteRole = message.guild.roles.cache.find(role => role.name === 'muted');

    member.roles.add(muteRole.id);
});

guildMember的代码添加:

const client = require("../index");
const Schema = require("../models/muted");

client.on("guildMemberAdd", async(member) => {
    const data = await Schema.findOne({Guild:member.guild.id});
    if (!data) return;
    const user = data.User.findIndex((prop) => prop === member.id);
    if (user == -1) return;
    let muteRole = message.guild.roles.cache.find(role => role.name === 'muted');

    member.roles.add(muteRole.id);
});

如果您需要我的代码/机器人中的任何信息来帮助我,您可以告诉我伙计们

感谢关注!

标签: javascriptmongoosediscorddiscord.js

解决方案


去年的某个时候,当我与 Mongoose 一起工作时,我遇到了类似的问题。我运行了.findOne查询,我得到了这个错误MongooseError: Operation projects.findOne() buffering timed out after 10000ms

我发现我错过了.exec()应该执行查询的函数。添加它并执行我的查询。

您可以在此处阅读 Mongoose 文档:https ://mongoosejs.com/docs/api.html#query_Query-exec


推荐阅读