Discord.js/Mongodb如何更新所有数据库值
我目前正在为Discord创建一个经济机器人,我有一个问题不知道如何解决: 所有用户都有一个工资,该工资将通过命令设置。我想创建一个命令,可以用设置的工资金额更新所有用户的帐户。 不必ping特定用户,我如何使命令更新MongoDB数据库中所有找到的用户的值 以下是当前代码:Discord.js/Mongodb如何更新所有数据库值,mongodb,discord.js,robo3t,Mongodb,Discord.js,Robo3t,我目前正在为Discord创建一个经济机器人,我有一个问题不知道如何解决: 所有用户都有一个工资,该工资将通过命令设置。我想创建一个命令,可以用设置的工资金额更新所有用户的帐户。 不必ping特定用户,我如何使命令更新MongoDB数据库中所有找到的用户的值 以下是当前代码: const profileModel = require("../models/profileSchema"); module.exports = { name: 'pay', alia
const profileModel = require("../models/profileSchema");
module.exports = {
name: 'pay',
aliases: [],
permissions: ["ADMINISTRATOR"],
description: "pay users their salary",
async execute(message, args, cmd, client, discord, profileData) {
const amount = profileData.pay;
const target = message.mentions.users.first();
try{
await profileModel.findOneAndUpdate({
userID: target.id,
}, {
$inc: {
bank: amount,
},
}
);
return message.channel.send(`Users have been paid.`);
} catch(err) {
console.log(err);
}
},
};
如您所见,当前正在等待用户ping用户。但我希望它只更新数据库中找到的所有用户,而不需要指定是谁
我真的很感激你的帮助 Mongo有一个方法
updateMany
,docs found,如果查询设置为空对象,它会更新所有文档。所以,试试看:
await profileModel.updateMany({}, {
$inc: {
bank: amount,
},
}
);
谢谢你的回答。它几乎解决了我的问题。唯一剩下的问题是,它以相同的数量更新所有用户。第一个人有一个有3000枚硬币的账户。他的固定工资是3000英镑。第二个人有一个有3000枚硬币的账户。他的固定工资是2500英镑。当我运行命令“pay”时,它会用3000更新这两个帐户,而person2实际上会收到2500。那么,我如何指定它来检查每个人自己设定的支付金额呢?