有人可以解释一下我做错了什么吗?我正在尝试通过添加两个数字来更新我的 Mongoose 架构上的嵌套数组内的数字值
这是有问题的部分
$set: {
"shareHolders.$.shares": Number(req.existingStock) + Number(req.stock)
}
req.existing 份额为 100,req.stock 为字符串格式,但等于 100,因此,简而言之,份额的新值应为 200
但是当我运行代码时,上述股东的股份不会改变,它仍然是原始值。
这是完整的代码片段
module.exports.updateShareHolder = function(req, callback) {
console.log('updateShareHolder');
console.log(req);
console.log(req.existingStock + Number(req.stock));
Company.update({
"_id": req.companyID,
"shareHolders.userId": req.userID
}, {
$push: {
"shareHolders.$.agreements": {
agreementID: req.agreementID
}
}
}, {
$set: {
"shareHolders.$.shares": Number(req.existingStock) + Number(req.stock)
}
}, function(err) {
if (err) {
console.log(err);
callback(err, err);
} else {
console.log('updateShareHolder');
callback(null, 'success');
}
})
};
最佳答案
在进行更新
之前转换为数字。
const updatedStock = Number(req.existingStock) + Number(req.stock)
然后
$set: {
"shareHolders.$.shares": updatedStock
}
关于node.js - 如何更新 Mongoose 模型嵌套数组中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48744398/