2010-05-07 7 views

cevap

137

görmüyorum:

db.test.getIndexes() 

kabuk yardım için denemelisiniz:

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

emin koleksiyonunuzu kullanmaya dikkat edin:

db.collection.getIndexes() 
13

Ve veritabanındaki tüm endeksler listesini almak istiyorsanız:

use "yourdbname" 

db.system.indexes.find() 
5

Onların büyüklüğü ile birlikte aynı zamanda çıkış tüm endeksler olabilir:

Ayrıca
db.collectionName.stats().indexSizes 

db.collectionName.stats() seni çok verir olmadığını kontrol paddingFactor gibi ilginç bilgilerin, koleksiyonun büyüklüğü ve içindeki elemanların sayısı.

4

tüm dizinleri listelemek isterseniz: tüm koleksiyonları tüm dizinleri bulmak istiyorsanız

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

, bu bir adım alarak, (Juan Carlos Farah senaryosunu here değiştirilmiş) Bu komut verir dizin detayların bir JSON çıktıda dahil bazı yararlı çıkışı,:

// 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); 
     }); 


    }); 

}); 
+0

Bu gerçekten yararlı, ama bence printjson (dizinler); 'printjson (id olmalıdır) x) ' –