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

如何使用JavaScript在mongodb中的文档的子文档中增加值,javascript,mongodb,meteor,database,Javascript,Mongodb,Meteor,Database,我想增加在数据库中找到的文档的子文档中元素的数量 我在文件上的发现有效: Cart.findOne({_id: '2JKD6eynaYmTGnbiZ',"items.productId": 'inkGTN7T89fqwEqTB' }); 退回此邮件: { _id: '2JKD6eynaYmTGnbiZ', items: [ { _id: 'LYKPShnDDfYHS8zmx', productId: 'inkGTN7T89fqwEqTB', qu

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

我在文件上的发现有效:

Cart.findOne({_id: '2JKD6eynaYmTGnbiZ',"items.productId": 'inkGTN7T89fqwEqTB' });
退回此邮件:

{ _id: '2JKD6eynaYmTGnbiZ',

  items: 

   [ { _id: 'LYKPShnDDfYHS8zmx',

       productId: 'inkGTN7T89fqwEqTB',

       quantity: 1 } ],

  sessionId: 'jhizTjhiErYRNKhJW’ }
但我似乎无法使用此更新来增加items子文档中某个元素的
数量

Cart.update({
    _id: '2JKD6eynaYmTGnbiZ’, "items.productId": ‘inkGTN7T89fqwEqTB'
}, {
    $set: {
        updatedAt: new Date()
    },
    $inc: {
        "items.quantity": 10
    }
});
我不知道引用它是否错误,我尝试使用
项。$.productId
引用元素,但在查找时甚至不会返回文档。

您需要使用表示
$inc
中匹配的
项的索引的:

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

我想您只需要在新字段和更新字段上调用$set,然后添加{upsert:true},我不确定$inc做什么。看见