Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

명령줄을 사용하여 MongoDB 데이터베이스의 모든 컬렉션에서 모든 인덱스를 삭제하시겠습니까?

<시간/>

다음은 명령줄을 사용하여 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"
   }
]

위의 샘플 출력을 보면 인덱스가 성공적으로 삭제되었습니다.