다음은 명령줄을 사용하여 MongoDB 데이터베이스의 모든 컬렉션에서 모든 인덱스를 삭제하는 구문입니다.
db.getCollectionNames().forEach(function(yourVariableName) {
db.runCommand({dropIndexes: yourVariableName, index: "*"});
}); 위의 구문은 _id를 제외한 모든 인덱스를 삭제합니다.
현재 데이터베이스를 확인해보자. 다음은 쿼리입니다.
> db
그러면 다음과 같은 출력이 생성됩니다.
Test
다음은 인덱스를 삭제하기 전에 컬렉션의 일부 인덱스를 표시하도록 하는 쿼리입니다.
> db.indexingDemo.getIndexes();
그러면 다음과 같은 출력이 생성됩니다.
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.indexingDemo"
},
{
"v" : 2,
"key" : {
"StudentFavouriteSubject" : 1
},
"name" : "StudentFavouriteSubject_1",
"ns" : "test.indexingDemo",
"background" : true
}
] 다음은 MongoDB 데이터베이스의 모든 컬렉션에서 모든 인덱스를 삭제하는 쿼리입니다.
> db.getCollectionNames().forEach(function(allCollectionName) {
... db.runCommand({dropIndexes: allCollectionName, index: "*"});
... }); 다음은 인덱스가 삭제되었는지 여부를 확인하는 쿼리입니다.
> db.indexingDemo.getIndexes();
그러면 다음과 같은 출력이 생성됩니다.
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.indexingDemo"
}
] 위의 샘플 출력을 보면 인덱스가 성공적으로 삭제되었습니다.