我在cart
集合中有一个对象:
{
_id: 1,
purchased: 0,
items: [
{
item_id: 5,
count: 0
},
{
item_id: 6,
count: 0
},
]
}
我想原子地增加item_id的purchased
和count
:6。我相信正确的更新命令是:
db.carts.update({_id: 1, "items.item_id": 6},
{
$inc: {
purchased: 1
"items.$.count": 1
}
})
这似乎在控制台中有效,但我不确定这是否100%正确。任何人都可以发现此更新命令的任何问题或确认这对我的用例是正确的吗?
要将此缩放到我的应用,假设_id
是ObjectId,item_id
也是ObjectId(即它们是唯一的)。