我想增加数据库中找到的文档的子文档中元素的数量。
我对该文件的发现有效:
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
来引用该元素,但甚至不会在查找中返回文档。
答案 0 :(得分:1)
您需要使用代表items
中匹配的$inc
数组元素索引的$
positional operator:
Cart.update(
{
_id: '2JKD6eynaYmTGnbiZ', "items.productId": 'inkGTN7T89fqwEqTB'
}, {
$set: {
updatedAt: new Date()
},
$inc: {
"items.$.quantity": 10
}
});