Итак, я пытаюсь создать бот для разногласий для меня и моих друзей для отслеживания статистики в CS GO 10 мужчин, и я использую cheerio для веб-вырезки с сайта, который предоставляет нам статистику, а затем передаю их в mongodb.Функциональность утилизации работает нормально, но я пытаюсь выяснить, как избежать создания дубликатов документов для каждого пользователя.Если я ввожу * userid 857575, он извлекает статистику для этого пользователя и помещает в БД, но если я вызываю его несколько раз, он создает несколько документов в БД.Мой вопрос: как мне заставить mongodb обновить документ, если автор сообщения, находящийся в разногласии, совпадает с именем пользователя в БД?Поэтому, если имя пользователя bob отправляет * userid3939 и bob уже существует в базе данных, обновите документ.Если bob не существует, создайте документ.код ниже, ценим любые советы.
module.exports.run = async (bot, message, args) => {
console.log(args);
var userUrl = 'https://popflash.site/user/' +args;
console.log(userUrl);
console.log(message.member.user.tag);
rp(userUrl)
.then(function (html) {
const arr = [];
var i = 0;
$('.stat-container', html).each(function (key, value) {
arr[i++] = $(this).find(".stat").text();
});
const stats = new Stats({
_id: mongoose.Types.ObjectId(),
userName: message.member.user.tag,
userId: args,
HLTV: arr[0],
ADR: arr[1],
HS: arr[2],
W: arr[3],
L: arr[4],
T: arr[5],
win_percent: arr[6]
});
stats.save()
.then(function (result) {
let botembed = new Discord.RichEmbed()
.setDescription(message.member.user + "'s 10 Man stats")
.setColor("#15f153")
.addField("stats", result)
return message.channel.send(botembed);
})
})
}
module.exports.help = {
name: "userid"
}