Discord.js mongoose注册了2个警告,而不是一个

Discord.js mongoose注册了2个警告,而不是一个,discord.js,Discord.js,我在与下面的命令共享同一系统的所有命令中遇到问题 所有命令,如ban、mute、kick,都与本命令相同,在猫鼬部分的行为也相同 看看下面给定的代码块 const warnDoc = new WarningModel({ guildID: message.guild.id, memberID: member.id, warnings: [re

我在与下面的命令共享同一系统的所有命令中遇到问题

所有命令,如ban、mute、kick,都与本命令相同,在猫鼬部分的行为也相同

看看下面给定的代码块



                const warnDoc = new WarningModel({
                    guildID: message.guild.id,
                    memberID: member.id,
                    warnings: [reason],
                    moderator: [message.member.id],
                    date: [Date.now()],
                })

                warnDoc.warnings.push(reason)
                warnDoc.moderator.push(message.member.id)
                warnDoc.date.push(Date.now())

                await warnDoc.save().catch(err => console.log(err))

                message.delete(message.author);

                const logs = message.guild.channels.cache.find(channel => channel.name === "albot-mod-system");
                if (!logs)
                    return console.log(`No logs channel exists in ${message.guild.name}`)

                let warnembed = new Discord.MessageEmbed()
                    .setTitle(`Moderation | Audit Log`)
                    .addField("**Member**", `${member}`)
                    .addField("**Action**", "Warn")
                    .addField("**Reason**", `${reason ? `${reason}` : ''}`)
                    .addField("**Warning Count**:", `${warnDoc.warnings.length}`)
                    .setTimestamp(message.createdAt)
                    .setFooter(message.member.displayName, message.author.displayAvatarURL({ dynamic: true }))
                    .setColor(`#000000`)
                logs.send(warnembed);
                member.send(`You were warned in **${message.guild.name}** for: **${reason}**.`);

        let warnEmbed2 = new MessageEmbed()
            .setAuthor(`Moderation`)
            .setDescription(`${member} has been warned successfully with the reason: ${reason}`)
            .setTimestamp(message.createdAt)
            .setFooter(message.member.displayName, message.author.displayAvatarURL({ dynamic: true }))
            .setColor(`#000000`)
        message.channel.send(warnEmbed2);

    }
}
这是我的warn命令,当我运行它时,它通常会给出一个警告,但会注册两个。这个问题不知从何而来,令人困惑

有人知道这个问题的根源吗

我试过的东西:

试试老猫鼬版本,运气不好。 玩弄代码中的猫鼬部分,没有运气。 恢复到旧版本的命令,没有运气


我真的不知道是什么原因造成的。

您正在使用
警告
数组(
warnings:[reason]
)初始化
警告模型
),并以相同的原因再次推送它。删除推送呼叫

除去

warnDoc.warnings.push(reason)
您还应该删除以下行,因为在初始化文档时设置了
版主
日期

warnDoc.moderator.push(message.member.id)
warnDoc.date.push(Date.now())

我明天会试试这个,并且尽快回复你,因为我已经晚了。不!不起作用,它仍然认为它做了2个警告,现在它甚至没有在数据库中注册它们……事实上,它起作用了,不管我说什么。谢谢大家!@nikoszz别担心!现在又出现了1个问题,只出现了一个正在工作的问题。所以我猜推送调用使警告在一个数据库条目中弹出,并在一个列表中显示,如警告ID:2、3等。