如果文档已存在(但始终更新其他字段),请不要更新字段

时间:2017-08-23 19:16:31

标签: node.js mongodb mongoose

我有一个使用Mongoose的更新声明,如下所示:

Model.update(condition, {
   foo: '1',
   bar: '2',
   baz: '3'
}, 
{

 new: true,
 upsert: true

}, function(err, result){

});

这是我的难题 - 我只想在没有文件存在的情况下设置条形字段。但总是想要设置foo和baz字段,无论如何。

有一种方法可以使用一个查询执行此操作,还是必须使用多个查询才能执行此操作?

1 个答案:

答案 0 :(得分:0)

应该完美地运作

condition = {}
// want to include bar with $and condition 
condition.bar = '2'
Model.findOneAndUpdate(condition, 
{
  $set:{
    foo: '1',
    baz: '3'
  }
},
{

 new: true,
 upsert: true

}, function(err, result){

});