当同时更新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
});
答案 0 :(得分:1)
你做错了$addToSet
的语法是:
{ $addToSet: { <field1>: <value1>, ... } }
所以这是:
db.Col.findAndModify(
...
{ $addToSet: { field_1: 'aaa', field_2: 'aaa' }}
...
});