Привета я новичок в nodejs мне нужно обновить значение в массиве с помощью вложенного _id документа моего документа базы данных выглядеть следующим образом ..обновления вложенного массива значения элемента в узле MongoDB
"complaints" : [
{
"complaint" : "head light is not working",
"complaintid" : ObjectId("57205219a56d2b8c0f9274a4"),
"_id" : ObjectId("57454c9249218eb40c1c0d1f"),
"labour" : 350,
"partCost" : 0,
"part" : [
{
"id" : ObjectId("56f12eaab915bd9800272ed7"),
"estimate" : 450,
"partname" : "clutch",
"_id" : ObjectId("57454cef49218eb40c1c0d25"),
"quantity" : 0,
"qrcodes" : []
},
{
"id" : ObjectId("56f12eaab915bd9800272ed7"),
"estimate" : 450,
"partname" : "rear tyre",
"_id" : ObjectId("57454cef49218eb40c1c0d24"),
"quantity" : 0,
"qrcodes" : []
}
],
"acceptance" : true,
"inspection" : false,
"color" : "#8929A9",
"status" : "APPROVED",
"estimate" : 1200,
"solution" : "HEAD LIGHT CHANGE",
"problems" : "HEAD LIGHT IS NOT WORKING"
},
мне нужно изменение количества значение части массива существует внутри массива частей, используя _id из части массива
я пытаюсь это, но он не работает, что я должен сделать для обновления этого значения ...
var partdata = req.payload.parts;
for(var k = 0; k< partdata.length ; k++){
CPS.update({
'complaints.part._id' : partdata[k].partid
}, {
"$inc" : {
'complaints.part.$.quantity' : partdata[k].quantity
}
}).exec
(function(err,temp) {
if(err){
res(err).code(500);
}else{
console.log(temp);
}
});
}
В структуре БД, указанной в вопросе 'complaints' является массивом объектов. Решение не основано на том, что я думаю. – Shrabanee
@ titi23: Обновлен, пожалуйста, проверьте, но, как уже упоминалось, это не рекомендуется. –