node.js:使用mongoose限制mongodb中数组包含的对象ID数
也许我的问题很简单,但我没有找到解决办法。 我想限制mongodb中对象ID数组的大小。我在用猫鼬 如何使用mongoose模式实现这一点 或者,我想的解决方案是首先检索文档,然后计算数组的大小,然后在出现验证失败错误时将其返回给最终用户node.js:使用mongoose限制mongodb中数组包含的对象ID数,node.js,mongoose,Node.js,Mongoose,也许我的问题很简单,但我没有找到解决办法。 我想限制mongodb中对象ID数组的大小。我在用猫鼬 如何使用mongoose模式实现这一点 或者,我想的解决方案是首先检索文档,然后计算数组的大小,然后在出现验证失败错误时将其返回给最终用户 请帮我找到更好的解决方案。Mongoose中没有这种东西,但您可以定义自己的验证。根据,您可以这样做: var userSchema = new Schema({ phone: [{ type: ObjectId, validate: {
请帮我找到更好的解决方案。Mongoose中没有这种东西,但您可以定义自己的验证。根据,您可以这样做:
var userSchema = new Schema({
phone: [{
type: ObjectId,
validate: {
validator: function() {
return this.phone.length <= 100;
},
message: 'Array exceeds max size.'
}
}]
});
var userSchema=新模式({
电话:[{
类型:ObjectId,
验证:{
验证器:函数(){
返回this.phone.length,正如我所说,我有一个对象ID数组。用户最多可以在其中存储3个ID。他可以一次发送0,1个或更多ID。将ID添加到数组是另一个api调用,因此我想声明他不能在数组中存储超过3个ID。执行此操作的最有效方法是什么?请参阅我的编辑以检查属性的属性长度。我不知道这是否是最有效的方法,但它看起来很简单。但我在问题和评论中忘了提到一个转折点,即如果用户添加了一个id,他可以再次使用相同的api添加更多id。这是我面临的真正问题。如果您继续使用保存
方法进行更新,验证程序唯一的问题是如果您使用update
,在这种情况下,我无能为力。