如何在mongodb中进行更新和插入?

时间:2019-06-04 11:19:55

标签: mongodb

如果某条记录不包含某些数据,并且该记录存在,我想插入一条记录,我想更新数据的某些键。但是它不会在$ 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”处产生冲突

1 个答案:

答案 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);
})