2014-11-18 5 views
0

나는 다음과 같이 몽구스 모델을 만들기 위해 노력하고 실패 Model.create, 데이터 세트 배열에 중복 키이 있습니다.은, 몽구스에 고유 인덱스 건물

따라서 위의 "경로"색인은 생성되지 않습니다. Mongo 콘솔은 경로 색인을 작성하는 데 오류를보고하지만 Mongoose는 오류를 표시하지 않습니다. 난 작은 데이터 세트 (중복 경로 값이없는)을 시도하는 경우 그러나, (데이터베이스를 삭제 후), 인덱스는 사용 사례에서 제대로

을 구축됩니다의 강제하는 가장 좋은 방법은 무엇입니까 몽구스를 통해 처음 삽입되기 전에 고유 색인이 생성됩니까? 또한, 몽구스 문제로보고해야한다고 생각하십니까?

답변

1

몽구스 모델에 'index' 이벤트를 통해 인덱싱 오류를보고합니다. 그래서 어떤 당신은 같은 것을 추가 할 수 있습니다 Books에 대한 인덱스를 작성하는 동안 발생하는 오류 볼 수 있습니다 :

Books.on('index', function(err) { 
    if (err) { 
     console.error('Books index error: %s', err); 
    } 
    else { 
     console.info('Books index complete'); 
    } 
}); 

당신이 당신의 인덱스 정의에 dropDups 옵션을 추가 할 수 있습니다 생성되는 고유 인덱스를 강제로,하지만 사용하는 중복으로 인해 영구적으로 삭제되므로주의하십시오.

var bookschema = mongoose.Schema({ 
    path: { 
     type: String, 
     index: {unique: true, dropDups: true} 
    }, 
    dir: String, 
    filename: String, 
    size: String, 
    type: String, 
    related: Array 
}); 
0

터미널 및 몽고를 사용하여 고유 색인을 설정하는 것이 좋습니다. 터미널을 열고이 입력 :

mongo 
use your_db_name 
db.books.ensureIndex({ path: 1 }, { unique: true }) 

당신이에 대한 자세한 내용을보실 수 있습니다이 Here