MongoDB의 인덱스 목록?


답변:


144

쉘에서 :

db.test.getIndexes()

쉘 도움말을 보려면 다음을 시도해야합니다.

help;
db.help();
db.test.help();

17

모든 색인을 나열하려면 다음을 수행하십시오.

db.getCollectionNames().forEach(function(collection) {
   indexes = db.getCollection(collection).getIndexes();
   print("Indexes for " + collection + ":");
   printjson(indexes);
});

1
이것은 정말 도움이됩니다.
Adrian Carr

13

데이터베이스의 모든 인덱스 목록을 얻으려면 다음을 수행하십시오.

use "yourdbname"

db.system.indexes.find()


5

모든 색인을 크기와 함께 출력 할 수도 있습니다.

db.collectionName.stats().indexSizes

또한 db.collectionName.stats()paddingFactor, 컬렉션 크기 및 내부 요소 수와 같은 흥미로운 정보를 많이 제공 하는지 확인 하십시오.


3

모든 컬렉션의 모든 인덱스를 찾을하려는 경우, 한 단계 더 나아가 복용, (후안 카를로스 파라의 스크립트에서 수정이 스크립트 여기는 ) 당신에게 인덱스 정보의 JSON 인쇄물을 포함하여 몇 가지 유용한 출력을 제공합니다 :

 // Switch to admin database and get list of databases.
db = db.getSiblingDB("admin");
dbs = db.runCommand({ "listDatabases": 1}).databases;


// Iterate through each database and get its collections.
dbs.forEach(function(database) {
db = db.getSiblingDB(database.name);
cols = db.getCollectionNames();

// Iterate through each collection.
cols.forEach(function(col) {

    //Find all indexes for each collection
     indexes = db[col].getIndexes();

     indexes.forEach(function(idx) {
        print("Database:" + database.name + " | Collection:" +col+ " | Index:" + idx.name);
        printjson(indexes);
         });


    });

});

이건 정말 도움이 될 것입니다,하지만 난 그 생각 printjson(indexes);해야한다printjson(idx);
커트 윌리엄스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.