【问题标题】:Mongoose: Updating some/all fields in a Mongodb collectionMongoose:更新 Mongodb 集合中的部分/所有字段
【发布时间】:2015-10-06 14:46:33
【问题描述】:

设置表单就是一个很好的例子。

提交时,需要更新相应的集合;和 1,一些、没有或所有字段需要更新。

假设我没记错的话,猫鼬:

  • 忽略架构中未定义的字段。
  • 是否根据架构对字段进行一些低级验证(即,它将拒绝(忽略?)类型不正确的值)。

那么这是否意味着以下是可取的

.put(function(req, res, next) {
  if (mongoose.Types.ObjectId.isValid(req.params._id)) {
    Collection.update({_id: req.params._id}, { $set: req.body}, function (err, collection) {
      if (err) return next(err);
      res.send(200, {success: true});
    })
  }else{
    res.send(400, {success: false});
  }
})

即将req.body 直接传递到更新中?

它确实有效,但我不禁觉得它在验证/过滤方面有点缺乏? mongoose 在其架构中是否做得足够让这种方法足够?还是应该遍历每个预期字段?

我很高兴设置了一些测试,但我想我会与社区核实并检查我的方法 - 任何建议的替代方案都非常感谢。

【问题讨论】:

    标签: node.js mongodb express mongoose


    【解决方案1】:

    因为Collection.update 绕过了 Mongoose 验证,这将是一种糟糕的做法,所以在这种情况下,我所做的两个假设是错误的。

    【讨论】:

      猜你喜欢
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 2012-03-11
      • 2018-06-12
      • 2021-07-09
      • 1970-01-01
      • 2017-12-29
      相关资源
      最近更新 更多