当同时更新2个字段时,mongo native addToSet无法正常工作

时间:2015-11-01 15:51:02

标签: arrays mongodb mongodb-query

当同时更新2个字段时,Mongo本机addToSet无法正常工作

这种方式不行

db.Col.findAndModify(
    {_id: 'abcxyz123'}
    ,[['_id','descending']]
    ,{$addToSet:{field_1: 'aaa'}, $addToSet:{field_2: 'aaa'}}
    ,{new: true},
    function(err, result) {
        console.log(result.value) //field_1: [], field_2: ['aaa']   
        //It should be field_1: ['aaa'], field_2: ['aaa']
    });

这种方式可行

db.Col.findAndModify(
    {_id: 'abcxyz123'}
    ,[['_id','descending']]
    ,{$addToSet:{field_1: 'aaa'}}
    ,{new: true},
    function(err, result) {
        console.log(result.value) //field_1: ['aaa'], field_2: []
        //It is ok          
    });

1 个答案:

答案 0 :(得分:1)

你做错了$addToSet的语法是:

{ $addToSet: { <field1>: <value1>, ... } }

所以这是:

db.Col.findAndModify(
    ...
    { $addToSet: { field_1: 'aaa', field_2: 'aaa' }}
    ...
});