48 NamespaceExists: Namespace (collection) already exists
MongoDB의미
생성하려는 컬렉션(namespace)이 이미 존재한다. MongoDB가 존재함을 보고하므로 같은 이름과 옵션으로 새 컬렉션을 만들 필요가 없다.
원인
기존 컬렉션을 createCollection으로 다시 생성하려 하거나(다른 옵션일 수 있음), 스키마/설정 스크립트가 여러 번 실행되었거나, 기존 이름을 capped collection이나 특수 옵션으로 재정의하려는 경우다.
해결 방법
보통 무시해도 안전하다. 컬렉션이 이미 존재한다는 의미다. 설정 스크립트를 멱등하게 만든다: 생성 전에 존재 여부를 확인한다(db.getCollectionNames().includes('name')). 옵션을 변경하려면 컬렉션을 삭제 후 재생성해야 한다(먼저 데이터를 백업한다): db.my_collection.drop() 후 createCollection.
같은 데이터베이스의 다른 항목
- 31 RoleNotFoundRole not found
- 263 OperationNotSupportedInTransactionOperation not supported inside a multi-document transaction (multi-document 트랜잭션 내에서 지원되지 않는 작업)
- 20 IllegalOperationIllegal operation
- 11601 InterruptedOperation was interrupted
- 85 IndexOptionsConflictIndex already exists with different options / different name (다른 옵션/이름의 인덱스가 이미 존재)
- 67 CannotCreateIndexCannot create index
- 27 IndexNotFoundIndex not found