如何更新mongo db中特定数组元素的购物和食物的价值?
MongoDB文档:
{
"data": [
{
"_id": "5e131eb4ea0c191cdc06f96b",
"firstName": "Anirudh",
"lastName": "Singla",
"gender": "Male",
"username": "anirudhsingla8",
"email": "anirudhsingla8@gmail.com",
"password": "rj13sl1608",
"cards": [
{
"card_number": "1014220122322233",
"shopping": 0,
"food": 0
},
{
"card_number": "1014220122322234",
"shopping": 0,
"food": 0
}
}
]
}
我试图更新数组的子元素中的值,例如"card_number"="1014220122322234"
的购物的当前值为0
。但我想根据用户需要对其进行更新。例如,如果用户输入10
,则应将其更新为0+10=10
,如果它是10
,并且用户输入16
,则应将其更新应该这样更新为10+16=26
。但是我无法在mongodb docs上找到针对此类更新的查询。
答案 0 :(得分:0)
您可以使用positional($) operator。
User.update(
{
_id: userId,
'cards.card_number': '1014220122322233'
},
{
$inc: { 'cards.$.shopping': 1, 'cards.$.food': 1 }
}
);
这会使购物和食物都增加1。