3

我有一个与此类似的文档:

{
    '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

camps.findOneAndUpdate({name: "John"}, {$inc: {"campaigns.7.campaign_id": 1}}, upsert: true, function(err, camp) {...etc...});

这不会增加campaign_id.
关于增加这个有什么建议吗?

4

1 回答 1

9

您的想法是正确的,但您的upsert选项格式不正确。

试试这个:

camps.findOneAndUpdate(
    {name: "John"}, 
    {$inc: {"campaigns.7.campaign_id": 1}}, 
    {upsert: true},
    function(err, camp) {...etc...});
于 2012-12-22T02:13:52.520 回答