Подтвердить что ты не робот

Список индексов в MongoDB?

Есть ли способ увидеть список индексов в коллекции в mongodb в оболочке? я читаю http://www.mongodb.org/display/DOCS/Indexes, но я ничего не вижу

4b9b3361

Ответ 1

Из оболочки:

db.test.getIndexes()

Для помощи с оболочкой вы должны попробовать:

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

Ответ 2

И если вы хотите получить список всех индексов в своей базе данных:

use "yourdbname"

db.system.indexes.find()

Ответ 4

Вы также можете выводить все свои индексы вместе с их размером:

db.collectionName.stats().indexSizes

Также проверьте, что db.collectionName.stats() предоставляет вам массу интересной информации, такой как paddingFactor, размер коллекции и количество элементов внутри нее.

Ответ 5

Если вы хотите перечислить все индексы:

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

Ответ 6

Сделав этот шаг дальше, если вы хотите найти все индексы для всех коллекций, этот script (измененный от Juan Carlos Farah script здесь) дает вам полезный вывод, включая распечатку 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);
         });


    });

});