2014-09-10 2 views
2

일부 스키마에 "혼합"유형이있는 일부 오래된 데이터로 작업하고 있습니다.Mongoose.js 조건부 채우기

기본적으로 값은 참조 된 ObjectID가되지만 다른 경우에는 약간의 텍스트 (초라한 디자인)가됩니다.

ObjectID가 아닌 시간 때문에이 데이터를 올바르게 채울 수 없습니다.

내 실제 질문 : 조건부 인 채우기를 만들 수 있습니까? 사람들에게 그 값 other을 건너 뛰도록 말할 수 있어야합니다.

답변

1

예, 당신이이 몽구스 API 참조에 미들웨어 기능을 점검 할 수있는 일 당신이해야 할 것은 당신이 그 데이터를 채우기 전에 경우에, 당신은 데이터의 유효성을 검사입니다

http://mongoosejs.com/docs/middleware.html

는 개체 ID 또는 이 개체 ID 아닌 경우, 당신은 다음()이 그것을 건너 뛰고, 또 그냥 돌아, 다음 기능을 전달하는

xSchema.pre('validate', function(next){ 
    var x = this; 
    var checkXType = typeof x.id; 

    if (checkXType === String) { 
     return; 
    } else { 
     next(); 
    }  
}); 
+0

내가하지 않은 전화 그 이후로 확인되었지만, 그것은 매우 합리적인 것처럼 보입니다. 이것을 시험 할 순간이있을 때 나는 이것으로 돌아갈 것이다. 필자는 미들웨어를 고려조차하지 못했습니다. – joseym