Mongoose:更新Mongodb集合中的部分/全部字段

时间:2015-07-16 23:44:47

标签: node.js mongodb express mongoose

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

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

假设我没弄错,Mongoose:

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

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

.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在其模式中做得足够吗?或者我应该迭代每个预期的字段?

我很乐意设置一些测试,但我认为我应该检查社区,并检查我的方法 - 任何建议的替代方案都会感激不尽。

1 个答案:

答案 0 :(得分:0)

碰巧这会是一种可怕的做法,因为class CustomUISlider : UISlider { override func trackRectForBounds(bounds: CGRect) -> CGRect { //set your bounds here return bounds } } 绕过了Mongoose验证,因此在这种情况下我所做的两个假设都是假的。