DBAtlas · 데이터베이스 운영 아틀라스

48 NamespaceExists: Namespace (collection) already exists

MongoDB

의미

생성하려는 컬렉션(namespace)이 이미 존재한다. MongoDB가 존재함을 보고하므로 같은 이름과 옵션으로 새 컬렉션을 만들 필요가 없다.

원인

기존 컬렉션을 createCollection으로 다시 생성하려 하거나(다른 옵션일 수 있음), 스키마/설정 스크립트가 여러 번 실행되었거나, 기존 이름을 capped collection이나 특수 옵션으로 재정의하려는 경우다.

해결 방법

보통 무시해도 안전하다. 컬렉션이 이미 존재한다는 의미다. 설정 스크립트를 멱등하게 만든다: 생성 전에 존재 여부를 확인한다(db.getCollectionNames().includes('name')). 옵션을 변경하려면 컬렉션을 삭제 후 재생성해야 한다(먼저 데이터를 백업한다): db.my_collection.drop() 후 createCollection.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목