node.js:使用mongoose限制数组在mongodb中包含的对象ID的数量
可能是我的问题是如此简单,但我找不到解决scheme。 我想在mongodb中限制对象ID数组的大小。 我正在使用mongoose。
如何使用mongoose模式做到这一点?
或者我在想的解决scheme是首先检索文档,然后计算数组的大小,然后在最终用户发生validation失败错误后返回。
请帮我find更好的解决scheme。
在Mongoose中没有这样的事情,但是你可以定义你自己的validation。 根据Mongoose的文档 ,你可以这样做:
var userSchema = new Schema({ phone: [{ type: ObjectId, validate: { validator: function() { return this.phone.length <= 100; }, message: 'Array exceeds max size.' } }] });
对于一个数组,每个元素都以参数的forms调用validator函数。 但是您可以检查属性的长度而不是validation元素。
当你使用save
方法更新你的模型实例时,这将起作用。 使用User.update
时,validation程序不运行。