Ответ 1
Из оболочки:
db.test.getIndexes()
Для помощи с оболочкой вы должны попробовать:
help;
db.help();
db.test.help();
Есть ли способ увидеть список индексов в коллекции в mongodb в оболочке? я читаю http://www.mongodb.org/display/DOCS/Indexes, но я ничего не вижу
Из оболочки:
db.test.getIndexes()
Для помощи с оболочкой вы должны попробовать:
help;
db.help();
db.test.help();
И если вы хотите получить список всех индексов в своей базе данных:
use "yourdbname"
db.system.indexes.find()
Убедитесь, что вы используете свою коллекцию:
db.collection.getIndexes()
http://docs.mongodb.org/manual/administration/indexes/#information-about-indexes
Вы также можете выводить все свои индексы вместе с их размером:
db.collectionName.stats().indexSizes
Также проверьте, что db.collectionName.stats()
предоставляет вам массу интересной информации, такой как paddingFactor, размер коллекции и количество элементов внутри нее.
Если вы хотите перечислить все индексы:
db.getCollectionNames().forEach(function(collection) {
indexes = db[collection].getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
Сделав этот шаг дальше, если вы хотите найти все индексы для всех коллекций, этот 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);
});
});
});