0
我有我的包裹的頭周圍採用mongooseJS和ExpressJS在我的MongoDB更新多個值的問題。快遞/貓鼬更新查詢
讓我們說,我提出2個或多個對象的數組從我的前端,以「表達路由」,並有我得到的req.body參數去取。我的req.body看起來像這樣:
[articles:
{ article: {
_id: '564209c66c23d5d20c37bd84',
quantity: 25,
},
{ article: {
_id: '564209c66c23d5d20c37bd83',
quantity: 51,
},
}]
然後我需要循環?要找到數據庫中的特定文章進行更新,並找到該文章時,我想更新前端的「數量」值到數據庫中正確的文章。
var id = [];
var body = {};
for (var i = req.body.length - 1; i >= 0; i--) {
id.push(req.body[i].article._id);
body[i] = req.body[i].article.quantity;
};
Articles.update(
{ _id: {$in: id} },
{ $set: {quantity: body[0].article.quantity} },
{multi: true},
function(err, response){
if(err)
console.log(err);
console.log(response);
});
這段代碼的問題是,我把所有文章的第一篇量值,我希望它是從前端正確的。這感覺就像我在正確的道路上,但我對mongoDB很新,並表達如此,如果有更好的解決方案或甚至解決方案讓我知道。
由於這是我一直在尋找!但有這個小問題,我從節點得到這個錯誤: 拋出新的錯誤('無法設置標題發送後');使用 林res.json()函數返回一個響應,我明白,這是問題嗎?有沒有辦法收集所有回覆併發送,或者我應該怎麼做? – grahlie
是的。這是因爲你正在調用res.json()兩次。 – inspired
您可以使用['async'(https://github.com/caolan/async#asyncjs)找出當所有的更新都完成,然後把你的res.json()響應。 – inspired