如果某条记录不包含某些数据,并且该记录存在,我想插入一条记录,我想更新数据的某些键。但是它不会在$ set中发生,并且$ setOnInsert在这种情况下不起作用。
db.update(
{key1:value1},
{
$set:{key5:value5,key4:value4},
$setOnInsert: { key1: value1,key2:value2,key3:value3,key4:value4 }
},
{upsert:true}
)
.then(out => {
console.log("for out");
console.log(out);
return Promise.resolve(out);
})
预期结果:- 如果记录已经存在,它应该修改key4。
当前结果:-
未处理的拒绝:MongoError:更新路径“ key4”会在“ key4”处产生冲突
答案 0 :(得分:0)
您在$ set和$ setOnInsert中都具有key4:value4。从$ setOnInsert删除它。
db.update(
{key1:value1},
{
$set:{key5:value5,key4:value4},
$setOnInsert: { key1: value1,key2:value2,key3:value3}
},
{upsert:true}
)
.then(out => {
console.log("for out");
console.log(out);
return Promise.resolve(out);
})