2016-09-07 3 views
0

내 수집을 위해 다음과 같은 몽구스 스키마를 작성했습니다. 그러나 몽구스 스키마는 문서에 삽입되는 개체 및 항목의 데이터 형식에서 엄격한 검사를 수행하지 않는 것처럼 보입니다. ForExample : 나는 변경하는 경우mongodb insert() always successful

"activity_performed"사실

에 "activity_performed"데이터를 삽입 할 때, MongoDB를 어떤 오류를 제공하지 않습니다

"adsfsadf을" . 내가 뭘 잘못하고 있고 데이터를 삽입하는 동안 mongoose와 mongodb가 엄격한 형식 검사를 시행하도록 강제 할 수 있습니까?

function initSchema() { 
    activitySchema = mongoose.Schema({ 
     observationNumber : Number, 
     observation_data : [{ 
      child_id : Number, 
      child_observation_data : [{ 
       activity_performed: Boolean, 
       observation_date: String, 
       teacher_id: Number 
      }] 
     }] 
    }); 
} 

function insertData() { 
    var activityModelObject = new ActivityModel(); 
    activityModelObject.observationNumber = 1593570; 
    activityModelObject.observation_data = {"child_id" : 236, child_observation_data:{"activity_performed":"adsfsadf", "observation_date": "16May2016", "teacher_id":789}}; 

    activityModelObject.save(function(err, savedObject) { 

     if(err) { 
      console.error("error in saving to mongodb", err); 
      return; 
     } 

     console.log("succesffully saveed the data: ", savedObject); 
    }); 
} 

로그 :

successfully saved the data: { observation_data: 
    [ { child_observation_data: [Object], 
     _id: 57d07545b839132412da0755, 
     child_id: 236 } ], 
    _id: 57d07545b839132412da0754, 
    observationNumber: 1593570, 
    __v: 0 } 

이 실패한다! 하지만 어떤 이유로 mongodb이 성공했다고보고합니다.

답변

0

코드가 완전하지 않기 때문에. 몽구스로 스키마를 등록하지 않은 것 같습니다. 그래서, 몽구스는 당신이 집행하기 원하는 어떤 규칙이 있다는 것을 인식하지 못합니다. 또한 초기화해야 함을 알립니다. new mongoose.Schema()

activitySchema = new mongoose.Schema({ 
     observationNumber : Number, 
     observation_data : [{ 
      child_id : Number, 
      child_observation_data : [{ 
       activity_performed: Boolean, 
       observation_date: String, 
       teacher_id: Number 
      }] 
     }] 
    }); 

//registering schema to Activity_Model 
var Activity = mongoose.model("Activity_Model", activitySchema); 

var activityModelObject = new Activity();