给定这样的文件

{
  _id: '123456',
  items: [{
     itemId: 'abcd',
     qty: 1
  }, {
     itemId: 'defg',
     qty: 3
  }]
}


我只想更新某些项目;例如,我只想将itemId = 'abcd'的数量增加5,这样生成的文档将变成

{
  _id: '123456',
  items: [{
     itemId: 'abcd',
     qty: 6
  }, {
     itemId: 'defg',
     qty: 3
  }]
}


我怎么做?

最佳答案

基本上有3个步骤:

 1. Select the itemid from items array where value is abcd
 2. use $inc property to increament
 3. Use $ operator(positional update) to specify that you want to

从要更新的文档中增加数量键。
PFB最终查询:
db.schools.update({
    items.itemId: 'abcd'
},{
    $inc : { items.$.qty : 5 }
});

07-24 09:44
查看更多