仅更新MongoDB中的某些子文档

时间:2017-05-03 14:39:13

标签: javascript mongodb meteor

鉴于此文件

{
  _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 
  }]
}

我该怎么做?

1 个答案:

答案 0 :(得分:1)

基本上有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 }
});