【发布时间】:2022-06-13 22:24:40
【问题描述】:
我在 javascript 方面并不是那么缺乏经验,但这只是让我感到困惑。我正在尝试为我的不和谐机器人制作一个经济系统,我正在使用 mongodb。现在,我正在发出存款命令,我所做的只是从用户的钱包中减去命令中给出的金额,然后将其添加到用户的银行账户中。代码:
const balanceProfile = await client.createBalance(message.member);
const amount = args[0];
if(isNaN(args[0])) return message.reply(`Specify an amount to deposit.`);
if(amount > balanceProfile.wallet) return message.reply(`Too much money to deposit.`);
try {
await Balance.findOneAndUpdate({
_id: balanceProfile.id,
wallet: balanceProfile.wallet - amount,
bank: balanceProfile.bank + amount
});
} catch (error) {
console.log(error);
}
message.reply(`Successfully deposited ${amount} moneyz to da bank!`)
}
}
Mongo 架构:
const mongoose = require('mongoose');
const balanceSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
memberId: String,
wallet: { type: Number, default: 0 },
bank: { type: Number, default: 0 },
daily: { type: Number }
});
module.exports = mongoose.model('Balance', balanceSchema, 'balances');
钱包工作正常,它完美地从钱包中减去了金额。但是,我的问题是,它没有将金额添加到银行,而是将数字添加到数字的末尾。因此,如果我将 5 美元存入我的银行,而我的银行中已经有 7 美元,那么我的银行将获得 75 美元。 (我希望它为我的银行增加 5 美元,而不是我的银行的字面数字 5)。没有任何错误,我不知道要搜索什么来解决这个问题,也找不到任何关于此的先前问题。任何帮助将不胜感激。
旁注:我也尝试使用 += 语句。
【问题讨论】:
-
变量是字符串而不是数字?
"7" + 5产生"75","7" + "5"也是如此。
标签: javascript mongodb math discord.js