2017-05-01 10 views
0

와 하위 문서에있는 경우 : 나는 위치를 추가 할 때, 나는검사 수는 것처럼 보이는 문서가 몽구스

var index_number = Math.floor(100000 + Math.random() * 900000);를 사용하여 index_number을 생성

var User = new Schema({ 
    _id: ObjectId, 
    name: String, 
    position: [{ 
       _id:ObjectId, 
       index_number:Number, 
        preference:[{ 
         candidate_id: String, 
         weightedScore:Number, 
         position_id:String, 
         candidate_index_number:Number 
        }], 

그러나 나는이 수 있는지 확인해야 내가 추가하기 전에 다른 위치에 대한 하위 문서에 존재합니다. 그래서 내가 .. 을하지 않는 번호를하지만 때까지이 기능은 .. 하위 문서로 이동하지 않는 번호를 확인하고 번호가 존재하는 경우 기능을 다시 실행해야

User.count({index_number: index_number}, function (err, count){ 
     if(count>0){ 
      console.log("no"); 
     } 
     else{ 
      console.log("okay"); 
     } 

어떻게 함수를 통해 루프 및 index_number에 대한 하위 문서를 확인합니까? 아니면 몽구스와 함께 객체 ID가 아닌 고유 번호를 삽입 할 수 있다는 것을 모르는 방법이 있습니까?

+0

당신이 원한다면 index_number 필드에 고유 번호 만 저장하도록 허용 할 수 있습니까? –

+0

@sacDahal 오, 네, 제발 그 위대한 것입니다! – user

답변

0

index_number 필드를 변경하여 고유 한 값만 저장할 수 있습니다.

index_number: {type: Number, index: { unique: true } }, 

중복이 발생하면 콜백에 오류가 발생합니다.