【发布时间】:2020-08-29 12:41:07
【问题描述】:
我正在制作带有警告系统并且效果很好的不和谐,但我想创建editwarn 命令,因此如果有人输入错误,他们可以编辑警告原因。我的代码的问题是它用新的原因替换了 Array 中的所有元素。
您可以在图片上看到,如果我执行命令!editwarn 2 (because i want to edit second warn) not working,它会将数组中的所有元素替换为not working。
我的代码
//declare user and userid
let user = message.mentions.users.first()
let split = args.slice(2).join(" ")
Warning.findOneAndUpdate({ userID: user.id },
{ $set: { reason: split } },
{ new: true }).exec((err, data) => {
if (err) throw err;
if (!data) {
return message.reply("User doesn't have any warnings.")
} else {
if (args[1] > data.warns) return message.reply("User doesn't have that warning.")
modLogs.send(embed)
message.delete();
return message.reply(`${user.tag} info succesfully edited!`)
}
});
我不认为这与它有任何关系,但我会写在这里
我的计划
const mongoose = require("mongoose");
const newScheme = mongoose.Schema({
name: String,
warns: Number,
reason: Array,
userID: String
}, {
versionKey: false
})
module.exports = mongoose.model('Warning', newScheme)
【问题讨论】:
-
在你的 { $set: { reason: split } } 中,什么是“split”?
-
let split = args.slice(2).join(" ")
标签: node.js database mongodb mongoose discord.js