可能我的问题很简单,但我找不到解决方法。 我想在mongodb中限制对象ID数组的大小。我正在使用猫鼬。
如何使用mongoose schema?
或者我正在考虑的解决方案是首先检索文档然后计算数组的大小,然后在最终用户发生验证失败错误时返回。
请帮我找到更好的解决方案。
答案 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
时,验证程序不会运行。