2017-10-13 11 views
0

그래서 usernamepassword 필드를 가진 모델 사용자가있었습니다. 나중에 사용자 이름 대신 전자 메일을 사용하도록 변경했습니다. 다른 모델에서도 비슷한 변경이 이루어졌습니다. username에서 name으로 이름이 바뀌 었습니다. 두 필드 모두 mongoose-unique-validator의 고유 유효성 검사를 사용했습니다. 이제 서버를 시작할 때마다 mongoose가 old와 new의 모든 필드에 대한 색인을 작성했습니다. 첫 번째와 마지막 일이 더 이상 스키마에 존재하지 않는 :몽구스는 더 이상 존재하지 않는 오래된 필드에 대한 색인을 계속 만듭니다.

Mongoose: users.ensureIndex({ username: 1 }, { unique: true, background: true }) 
Mongoose: people.ensureIndex({ name: 1 }, { unique: true, background: true }) 
Mongoose: people.ensureIndex({ uri: 1 }, { unique: true, background: true }) 
Mongoose: people.ensureIndex({ username: 1 }, { unique: true, background: true }) 

삭제 데이터베이스가 도움이되지 않았다, 데이터베이스가 도움이되지 않았다 변경. 나는 그것이 어디에서 오는 것인지 이해하지 못한다. 몽구스에 어떤 종류의 캐싱이 있습니까?

답변

0

오케이,이 이유는 내가 잘못 사용한 passport-local-mongoose입니다. 인덱스를 자동으로 작성합니다. 로컬 전략뿐 아니라 사용자 이름과 비밀번호로 사용할 필드를 옵션에서 지정해야했습니다. 그리고 두 번째 모델에서는 실수로 막혔습니다.