2016-10-12 85 views
1

我的MongoDB的子文檔是這樣的:MongoDB的子文檔的數組元素數量增加更新不工作

{ 
_id:"57beb7396366ebda090bf5ca" 
category:"Test" 
code:"L-001" 
created:"2016-08-25T09:15:37.184Z" 
description:"test" 
name:"Litu" 
price:2 
variant:[{ 
_id:"57beb7396366ebda090bf5ce" 
color:"Red" 
quantity:2 
size:"XL" 
},{ 
_id:"57beb7396366ebda090bf5fe" 
color:"Black" 
quantity:6 
size:"XXL" 
}] 

}

我要減少的顏色數量:黑色&尺寸:XXL

我有嘗試:

Product.update({ 
     '_id' : req.body.id, 
     'variant.color' : req.body.color, 
     'variant.size' : req.body.size 
     }, 
     { 
      $inc: { 'variant.quantity' : -(req.body.quantity)} 
     }) 

但出錯。錯誤:

MongoError:不能使用的部分(variant.quantity的變體)來遍歷元件

回答

3

在磁盤陣列,利用編號的位置/位置運算符($)更新內部訪問的字段。

在這種情況下,請使用位置運算符$。它將更新數組中與查詢匹配的第一個元素。

$inc: { 'variant.$.quantity' : -(req.body.quantity)} 
+2

謝謝。它的工作 –

+1

@ Md.NazmulHossainBilash在堆棧溢出,我們說謝謝[接受幫助我們的答案](http://stackoverflow.com/help/accepted-answer)。在左邊的答案旁邊有一個綠色的選中標記,您勾選:) – chridam

相關問題