Je sais que cela fait un moment, mais cela pourrait encore vous aider (ou peut-être quelqu'un d'autre), alors...
Vous pouvez peut-être essayer ceci :
var newValue = 1;
var newSerialcode = req.body.serialCode;
var newBloodgroup = req.body.blood_group;
var newGetbloodcomponent = req.body.blood_component;
Bloodinventory.find({ blood_component : { $in : newGetbloodcomponent} ,blood_group: { $in :newBloodgroup},chapter: { $in: [id] }}, function(err, bloodinventoryDocs) {
for(let bloodinventory of bloodinventoryDocs) {
// === change starts here === //
// filter into a new array all the places where this particular blood component occurs
let all_occurences = newGetbloodcomponent.filter(function(b){
return b === bloodinventory.blood_component;
});
// to avoid incurring unnecessary processing and/or database costs, only continue if an occurence was actually found
if(all_occurences.length > 0){
// increment it by that amount (which will be the number of items filtered into the array)
bloodinventory.num_stock = bloodinventory.num_stock + all_occurences.length;
// ^^ you could also write this as 'bloodinventory.num_stock += all_occurences.length;'
bloodinventory.save(function(err) {
if (err) {
console.log(err);
} else {
console.log('success');
}
});
};
// === change ends here === //
}
});