【问题标题】:Mongoose update document with conditions带条件的猫鼬更新文档
【发布时间】:2017-05-10 09:43:12
【问题描述】:

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

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

我在我的 nodeJS 中使用猫鼬

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案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.
    });
    

    【讨论】:

    • 能否为我提供更详细的条件参数?
    • 用一个用例更新了我的答案
    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2012-04-29
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多