错误:ParallelSaveError:无法并行多次保存()同一个文档

时间:2021-07-05 09:11:08

标签: mongodb discord.js

嗨,我遇到了一个错误(我看过其他人的解决方案,但他们并没有真正帮助我),我无法判断它在 discord.js 和 mongodb 中是什么原因错误如下: UnhandledPromiseRejectionWarning: ParallelSaveError: Can't save() the same doc multiple times in parallel. Document: 60df55dea691a919b4deca21

制作这个的代码在这里:

const serverModel = require('../../models/serverSchema');
module.exports = {
    name: 'hangup',
    description: 'hangup on someone if they like eating cereal with a fork!',
    category: 'fun',
    aliases: global.aliases.fun.hangup,
    cooldown: 5,
    // Umm code i guess
    async execute(message, args, client, serverData) {
        if (serverData.calling == 'connected') {
            console.log('die');
            const OtherPerson = await serverModel.findOne({ talkingWith: serverData.serverID });
            if (OtherPerson) {
                OtherPerson.talkingWith = null;
                OtherPerson.lastMsg = null;
                OtherPerson.calling = 'hangup';
                OtherPerson.save();
            }

        }
        serverData.calling = 'no';
        serverData.channel = '';
        serverData.lastMsg = '';
        serverData.talkingWith = '';
        serverData.save(); //The error brings me here
        message.channel.send(':bangbang:**__Hangingup__ bye bye**:bangbang:');
    },
};
<块引用>

我不知道这是什么原因

正如我所说,我不知道是什么原因造成的,我使用的是 mongodb 我很确定错误不是来自任何其他脚本

这是当前数据库的样子 服务器数据:

talkingWith: '860785717882126356';
channel: '856912495737307137';
calling: 'connected';
lastMsg: null;

我不会添加其他人数据库的样子,因为它未知但看起来像“ServerData”

1 个答案:

答案 0 :(得分:0)

我发现了问题

问题是我连续使用这个命令 serverData.save(); 太快了

我通过查看我的事件处理程序找到了它 我通过添加 if () 语句来修复它

抱歉这么小的回答,真的没有什么要补充的