我正在做一个MERN项目,我需要更新Mongo数据库记录中的两个字段.
我有两个字段,一个是名为Wallets的对象数组,另一个是Transaction.
我正在从前端获取一个对象,其中包括金额,作为钱包进行交易的钱包的索引是Mongo中的对象array.
现在我需要从钱包中减go 交易额.如何操作我在node.js中编写了一个控制器,但它什么都不做.
我从前端收到的对象,如果..
transaction = { amount: '50', wallet: 0, type: 'expense', description: 'kmop' };
我的Node.js 控制器是...
module.exports.addTransaction = async (req, res) => {
const transaction = req.body;
const {wallet} = transaction;
try {
const walletName = `Wallets.${wallet}.amount`
await UserModel.findOneAndUpdate(
{ email: email },
{ $inc: { walletName : -transaction.amount} ,
$push: { transactions: { $each: [transaction], $position: 0 } } }
);
res.send({stat: true});
}
else {
console.log(data)
res.send({ stat: false });
}
} catch (err) {
console.log("err",err)
res.send({ stat: false, err: err.message });
}
};
我的芒果数据库唱片--
{"_id":{"$oid":"64a5a396ec152ab4f5e1c60c"},
"firstName":"Vinayak",
"lastName":"Pandey",
"email":"abc@123.com",
"password":"$2b$10$dpAmLPa9imDKn3qeyhZ/hOwolO6NOYVwNvVgBc9PY8XZZ3n4WYh/O",
"Wallets":[{"name":"paytm","amount":500},
{"name":"hdfc","amount":5000},
{"name":"test","amount":3020}]
Suppose i made a transaction from wallet namde paytm of rs 50 so i want that is the amount in object with name as paytm should be decreased by rs-50 so initially it was rs500 after the process it should became rs450....个