목차

반응형

상황은 이와 같다. 몽고디비를 몽구스로 사용하는데 최초등록한 key값을 나중에 지워야하는 경우가 발생하였다.

하지만 스키마에서 unique값만 바꾼다고해서 기존의 collection에 들어가 있던 키 설정이 지워지지 않기때문에 db로 들어가서 key를 삭제해줘야한다.


이 같은 상황에서는 주로 아래의 에러가 뜬다.

 MongoError: E11000 duplicate key error index car.wheel.$index_1 dup key: { : 3 }

=> 현재 index라는 key값이 중복되어서 문제가 발생한다고 보면 된다.


일단 해당 db로 들어가서 collection에 대한 인덱스(키라고 생각하면 편할듯)의 값들을 보자.

db.collection.getIndexes() 명령어를 친다.


내가 mongoose를 사용하여 key값으로 지정한 필드는 wheel_name, index임을 알 수있다. (_id는 기본 key값임 무시)

나같은 상황은 원래 index를 키값으로 사용했으나 이를 없애고 wheel_name을 인덱스로만 사용하고자 한다.

따라서 index라는 키 설정을 지워야한다.

위 사진의 "key":{"index":1} 의 key 필드에 대한 value값을 주목하자 해당 값으로 지워야한다.



db.collection.dropIndex({key에 해당하는 value값}) 명령어를 치면 index가 잘 지워진다.



몽고db reference

반응형