我有一个类似于此的文档:
{
'user_id':'{1231mjnD-32JIjn-3213}',
'name':'John',
'campaigns':
[
{
'campaign_id':3221,
'start_date':'12-01-2012',
'worker_id': '00000'
},
{
'campaign_id':3222,
'start_date':'13-01-2012',
'worker_id': '00000'
},
...
etc
...
]
}
假设我想增加campaign_id
数组中元素7的campaigns
使用dot和猫鼬驱动程序,我想我可以这样做:
camps.findOneAndUpdate({name: "John"}, {$inc: {"campaigns.7.campaign_id": 1}}, upsert: true, function(err, camp) {...etc...});
这不会增加campaign_id
关于增加这个的任何建议?
答案 0 :(得分:8)
您的想法很正确,但您的upsert
选项格式不正确。
试试这个:
camps.findOneAndUpdate(
{name: "John"},
{$inc: {"campaigns.7.campaign_id": 1}},
{upsert: true},
function(err, camp) {...etc...});