Node.js 如何仅在bot启动和prefix change命令执行时查询特定于服务器的前缀?

Node.js 如何仅在bot启动和prefix change命令执行时查询特定于服务器的前缀?,node.js,mongodb,discord.js,Node.js,Mongodb,Discord.js,我的机器人目前通过连接到mongodb来工作,然后在发送的每条消息上执行此代码 let guildData; try { guildData = await guildModel.findOne({ serverID: message.guild.id }); if (!guildData) { let guild = await guildModel.create({ serverID: message.guild.id,

我的机器人目前通过连接到mongodb来工作,然后在发送的每条消息上执行此代码

let guildData;
try {
    guildData = await guildModel.findOne({ serverID: message.guild.id });
    if (!guildData) {
        let guild = await guildModel.create({
            serverID: message.guild.id,
            serverName: message.guild.name,
            prefix: '-',
        });
        guild.save();
    }
} catch (err) { console.log(err); }
然后我将
guildata.prefix
分配给
prefix
,然后检查它

var prefix = '-';
try {
    prefix = guildData.prefix;
} catch {}

if (!message.content.startsWith(prefix)) return;

因此,也许我可以在
client.on('ready')
上加载前缀一次,然后每次有人执行
prefix
(一个更改前缀的命令)。我已经让prefix change命令起作用了,但是它使用了
客户端的
guildata
。在('message'…)

上,我刚刚意识到我可以创建一个新的Discord.Collection(),存储guild.id及其前缀。因此,在
ready
中,我将遍历数据库中的每个帮会,将它们中的前缀设置为可由bot自动缓存的集合