【问题标题】:Updating only inputted fields仅更新输入的字段
【发布时间】:2015-05-29 10:11:44
【问题描述】:

我正在制作一个 RESTful API,但遇到了一些麻烦。我想仅使用已通过的值更新一行。因此,使用相同的端点,用户可以只编辑“名称”、“名称”和“类型”或仅“类型”。

以下是我目前拥有的内容的片段:

Group.update({
  created_by: req.user._id,
  _id: req.params.group_id
}, {
  name: req.body.name,
  $addToSet: { users: req.body.users }
},

我想这样做,如果没有用户通过或没有名称通过,它仍然会更新其他值。谁能指出我正确的方向?

谢谢, 丹尼尔

【问题讨论】:

标签: node.js mongodb api rest express


【解决方案1】:

您需要动态构建查询。

var find = {
      created_by: req.user._id,
      _id: req.params.group_id
}

var update = {};
if(req.body.name) {
    update.name = req.body.name;
}
if(req.body.users) {
    update['$addToSet'] = {};
    update['$addToSet'].users = req.body.users;
}

Group.update(find, update, callback);

这不是最漂亮的方法,但它应该让您了解如何解决这个问题。

【讨论】:

    猜你喜欢
    • 2013-10-28
    • 1970-01-01
    • 2012-04-03
    • 2019-07-20
    • 2021-11-29
    • 1970-01-01
    • 2012-09-20
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多