【发布时间】:2022-02-05 11:09:47
【问题描述】:
在我的应用程序中,我注册了金额的输入和输出,我需要在 MongoDB 中注册这些移动。
在进行新的入场或离场金额时,我需要注明入场或离场金额以及可用金额。我需要经典的输入时加法运算和输出时减法运算,还需要通过输入加法或输出减法来获得框中可用的数量。
我正在使用 $inc 来注册这些动作以设置数量,但我不知道如何直接从 Mongoose 的查询中获得对可用数量的加法或减法。这是我的代码:
const newItem = async (req, res = response ) => {
const pettyCashId = req.params.id;
const type = req.params.type;
let incomeAmount = 0;
let expenseAmount = 0;
if( type === 'income'){
incomeAmount = req.body.incomeAmount;
expenseAmount = 0;
}
if( type === 'expense'){
expenseAmount = req.body.expenseAmount;
incomeAmount = 0;
}
const itemToPush = {
concept: req.body.concept,
incomeAmount: incomeAmount,
description: req.body.description,
expenseAmount:expenseAmount,
'createdBy':{
uid: req.user._id,
username: req.user.username,
}
};
let pettyCashItem = await PettyCashItems.findOneAndUpdate({ 'pettyCashId': pettyCashId },
{
$inc: {
totalIncomeAmount: incomeAmount,
totalexpenseAmount: expenseAmount,
amountAvailable: ...
},
$push: {
'items': {
$each: [itemToPush],
}
}
},{ new: true }
);
res.json ( pettyCashItem );
}
这是我的模特:
const PettyCashItemsSchema = Schema (
{
pettyCashId:{
type: Schema.Types.ObjectId,
ref:'PettyCash',
required: [true, 'La Caja Chica es Obligatoria']
},
user:{
type: Schema.Types.ObjectId,
ref:'Users',
required: [true, 'El Usuario es obligatorio']
},
item: {
type: Number,
unique: true
},
totalIncomeAmount: {
type: Number,
maxlength:50,
default:0
},
totalexpenseAmount: {
type: Number,
maxlength:50,
default:0
},
amountAvailable: {
type: Number,
maxlength:50,
default:0
},
items:[{
concept: {
type: String,
maxlength:50,
required: [true, 'El Concepto es obligatorio']
},
incomeAmount:{
type: Number,
maxlength:50,
default:0,
required: [true, 'El Ingreso es obligatorio']
},
expenseAmount:{
type: Number,
maxlength:50,
default:0,
required: [true, 'El Egreso es obligatorio']
},
description: {
type: String,
maxlength:50,
required: [true, 'La Observación es obligatoria']
},
status: {
type: Boolean,
default: true,
required: [true, 'El Estatus es obligatorio']
},
createdAt: {
type: Date,
default: Date.now
},
createdBy:{
uid:{
type: String,
required:true
},
username:{
type: String,
required:true
},
}],
status: {
type: Boolean,
default: true,
required: [true, 'El Estatus es obligatorio']
}
}
);
感谢您的帮助。
【问题讨论】:
标签: javascript node.js mongodb express mongoose