如何使用JavaScript在mongodb中的文档的子文档中增加值

时间:2015-02-24 01:36:35

标签: javascript mongodb meteor database

我想增加数据库中找到的文档的子文档中元素的数量。

我对该文件的发现有效:

Cart.findOne({_id: '2JKD6eynaYmTGnbiZ',"items.productId": 'inkGTN7T89fqwEqTB' });

归还:

{ _id: '2JKD6eynaYmTGnbiZ',

  items: 

   [ { _id: 'LYKPShnDDfYHS8zmx',

       productId: 'inkGTN7T89fqwEqTB',

       quantity: 1 } ],

  sessionId: 'jhizTjhiErYRNKhJW’ }

但是我似乎无法使用此更新增加items子文档中元素的qty

Cart.update({
    _id: '2JKD6eynaYmTGnbiZ’, "items.productId": ‘inkGTN7T89fqwEqTB'
}, {
    $set: {
        updatedAt: new Date()
    },
    $inc: {
        "items.quantity": 10
    }
});

我不知道我引用它是否错误,我试图使用items.$.productId来引用该元素,但甚至不会在查找中返回文档。

1 个答案:

答案 0 :(得分:1)

您需要使用代表items中匹配的$inc数组元素索引的$ positional operator

Cart.update(
{
    _id: '2JKD6eynaYmTGnbiZ', "items.productId": 'inkGTN7T89fqwEqTB'
}, {
    $set: {
        updatedAt: new Date()
    },
    $inc: {
        "items.$.quantity": 10
    }
});