반응형
문제
멜론 프로젝트를 하면서 MongoDB에 저장된 인기 차트 데이터 중 "방탄소년단"을 "BTS"로 변경하려고 했는데 아래와 같은 오류가 떴다.
Command failed with error 48 (NamespaceExists): 'Collection already exists.
해결
해당 Collection이 이미 존재해서 그렇다.
매번 삭제해 주거나 삭제 로직을 만들어주면 된다.
protected boolean dropCollection(String colNm) {
boolean res = false;
if (mongodb.collectionExists(colNm)) {
mongodb.dropCollection(colNm);
res = true;
}
return res;
}
함수를 추가해 컬렉션이 존재할 때 삭제하는 코드를 짠다.
/**
* 컬렉션 삭제하기
* @param colNm 삭제할 컬렉션 이름
* @return 저장 결과
* @throws Exception
*/
int dropMelonCollection(String colNm) throws Exception;
인터페이스 매퍼에 추가해 준다.
@Override
public int dropMelonCollection(String colNm) throws Exception {
log.info(this.getClass().getName() + ".dropMelonCollection");
int res = 0;
super.dropCollection(colNm);
res = 1;
log.info(this.getClass().getName() + ".dropMelonCollection");
return res;
}
매퍼에 마저 코딩을 해준다.
쉽게 하려면 그냥 Collection을 삭제해 주면 된다.
반응형
댓글