出现错误。我无法确定是什么原因导致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:');
},
};
我不知道是什么导致了这个错误。我很确定这个错误不是来自任何其他脚本
这是serverData的数据库当前的外观:
talkingWith: '860785717882126356'; // Id of a discord server
channel: '856912495737307137'; // Id of a discord channel
calling: 'connected';
lastMsg: null;
我不打算添加OtherPerson
数据库的结构,因为它是未知的,但它看起来确实与ServerData
相似
1条答案
按热度按时间7cwmlq891#
我发现问题了。
问题是代码在一行中运行命令
serverData.save()
的次数太多。为了解决这个问题,我添加了一个if语句来检查数据是否已经保存。