node.js:使用mongoose限制数组在mongodb中包含的对象ID的数量

时间:2016-02-05 06:43:26

标签: node.js mongoose

可能我的问题很简单,但我找不到解决方法。 我想在mongodb中限制对象ID数组的大小。我正在使用猫鼬。

如何使用mongoose schema?

或者我正在考虑的解决方案是首先检索文档然后计算数组的大小,然后在最终用户发生验证失败错误时返回。

请帮我找到更好的解决方案。

1 个答案:

答案 0 :(得分:1)

在Mongoose中没有这样的东西,但你可以定义自己的验证。根据{{​​3}},您可以这样做:

var userSchema = new Schema({
  phone: [{
    type: ObjectId,
    validate: {
      validator: function() {
        return this.phone.length <= 100;
      },
      message: 'Array exceeds max size.'
    }
  }]
});

对于数组,为元素作为参数的每个元素调用验证器函数。但您可以检查属性的长度,而不是验证元素。

使用save方法更新模型实例时,这将起作用。使用User.update时,验证程序不会运行。