具有条件的Mongoose更新文档

时间:2016-12-25 15:54:45

标签: javascript node.js mongodb mongoose

我需要取消设置作为ObjectId的mongo字段,如果此ID是当前用户的Id并且设置了此字段,则引用另一个模式。在其他情况下,如果未设置此字段,则应设置当前用户ID。如果字段已设置且ObjectID与当前用户ID不匹配,则mongo应返回现有文档,但不会更改为ObjectID字段。

现在我通过ID查找条目,然后在我的JS代码中检查案例。然后我执行另一个查询以更新文档。但我认为这可以通过mongo在一个查询中完成。

我在我的nodeJS中使用mongoose

1 个答案:

答案 0 :(得分:1)

Mongoose findOneAndUpdate是您正在寻找的功能。它具有以下一般语法。 query.findOneAndUpdate(conditions, update, options, callback) 编辑:附加示例查询。

var query = {"_id": id};
var update = {name: {first: 'john', last: 'smith'}};
var options = {new: true};
People.findOneAndUpdate(query, update, options, function(err, person) {
  if (err) {
    console.log('got an error');
  }

  // at this point person is null.
});