2016-08-19 2 views
0

나는 플러그인을 구축 중이며 하위 모음 컬렉션 필드 중 하나에 대한 속성을 지정해야합니다. 어떤 사람은 statics이며 공식적인 방법이라고 언급했습니다.몽구스 하위 문서의 스키마 특성을 지정하는 방법은 무엇입니까?

그래서, 대신

var familySchema = mongoose.Schema({ 
    surName : { type: String }, 
    members : { type: [ personSchema ], minLength: 1, maxLength: 10 } 
}); 

...의 ... 그것은 ... 내가 더 minLength 또는 maxLength 없다 실현

var familySchema = mongoose.Schema({ 
    surName : { type: String }, 
    members : [ personSchema ] 
}); 
familySchema.static('minLength', 1); 
familySchema.static('maxLength', 10); 

를이 될 것입니다. 플러그인이이 문제를 처리 할 것입니다.

나는 문서를 살펴본 결과 공식을 언급하는 것을 찾을 수 없습니다. 하나의 이점과 다른 이점이 있습니까?

답변

0

당신 말이 맞아요, ref 배열을위한 minLength 같은 것은 없습니다. 사용자 정의 유효성 검사

var validateFamilyLength = function (members) { 
    return members.length > 1 && members.length < 10; 
}; 

var familySchema = mongoose.Schema({ 
    surName : { type: String }, 
    members : { 
     type: [personSchema], 
     validate: [validateFamilyLength, 'Not valid members count'] 
    } 
}); 

를 사용해야하지만 난 강력하게 혼란을 대신

var familySchema = mongoose.Schema({ 
    surName : { type: String }, 
    members : [{ 
     type: mongoose.Schema.ObjectId, 
     ref: 'Person', 
     validate: [validateFamilyLength, 'Not valid members count'] 
    }] 
}); 
+0

죄송 심판을 사용하는 것이 좋습니다. 나는 명확성을 위해 질문에 대해 언급했다. 그 속성을 선언하는 _preferred_ 방법을 결정하려고합니다. –