2013-01-15 1 views
2

, 인덱싱과 같이 객체에 지정 될 수 있음을 표시하십시오 "autoIndex" 옵션을 명시 적으로 설정되어 있지 않으면mongoose의 model.on ('index', ...)은 어떻게 사용해야합니까? <code>MongoDB/Node.js</code>에 대한 <code>MongooseJS</code>에 대한 문서보고에서

문서 당
var MyModelSchema = new Schema({ name: String, index: true }); 
var MyModel = mongoose.model('MyModel', MyModelSchema); 
MyModel.on('index', function() 
{ 
    doStuff(); 
}); 

, 몽구스가 시작시 ensureIndex()를 호출합니다 스키마에서 false. 이 작업이 완료되면 'index' 이벤트가 모델에서 생성되어 콜백을 트리거합니다.

내 이해는 모델 사용자가 모델을 사용하기 전에 모든 색인 작성이 완료되었는지 확인할 수 있다는 것입니다.

내가 어떻게 이런 일을 할 수 있을지 모르겠지만 app.configure을 통해이 일을 언급 한 것으로 믿습니다. 내 보낸 모델에 의존하는 응용 프로그램의 다른 부분보다 먼저이 인덱싱 작업을 완료 할 수있는 다른 방법이 있습니까?

어떻게 적절하게 사용해야합니까?

답변

3

모델의 'index' 이벤트는 모델의 ensureIndex 호출에서 발생한 오류를 경고합니다. 이벤트가 발생할 때까지 모델 사용을 지연시킬 필요가 없습니다. 그것은 꽤 엉망이 될 것입니다.

+0

mongoose가 메모리 또는 MongoDB 데이터베이스에서 색인을 생성하나요? –

+2

@AlexMills Mongoose는 MongoDB 데이터베이스에 색인을 생성합니다. – JohnnyHK

+0

보다 구체적으로 Mongoose는 MongoDB 데이터베이스에서 'ensureIndex'를 호출합니다. 다음은 [documentation] (http://mongoosejs.com/docs/guide.html#indexes)입니다. – JazzyWhit

0

프로젝트의 몽구스 설정을 구성하는 데 사용 된 영역에 다음을 추가하는 것이 유용하다는 것을 알았습니다.

let mongoose = require('mongoose'); 

mongoose.Model.on('index', function(err) { 
    if (err) logger.error(err); 
}); 
관련 문제