Apakah ada cara untuk melihat daftar indeks pada koleksi di mongodb di shell? saya membaca http://www.mongodb.org/display/DOCS/Indexes tetapi saya tidak melihat apa-apa
Apakah ada cara untuk melihat daftar indeks pada koleksi di mongodb di shell? saya membaca http://www.mongodb.org/display/DOCS/Indexes tetapi saya tidak melihat apa-apa
Jawaban:
Dari cangkang:
db.test.getIndexes()
Untuk bantuan shell, Anda harus mencoba:
help;
db.help();
db.test.help();
Jika Anda ingin mencantumkan semua indeks:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
Dan jika Anda ingin mendapatkan daftar semua indeks di database Anda:
use "yourdbname"
db.system.indexes.find()
Pastikan Anda menggunakan koleksi Anda:
db.collection.getIndexes()
http://docs.mongodb.org/manual/administration/indexes/#information-about-indexes
Anda juga dapat mengeluarkan semua indeks Anda bersama dengan ukurannya:
db.collectionName.stats().indexSizes
Juga periksa yang db.collectionName.stats()
memberi Anda banyak informasi menarik seperti paddingFactor, ukuran koleksi dan jumlah elemen di dalamnya.
Mengambil satu langkah lebih jauh, jika Anda ingin menemukan semua indeks pada semua koleksi, skrip ini (dimodifikasi dari skrip Juan Carlos Farah di sini ) memberi Anda beberapa keluaran yang berguna, termasuk cetakan JSON dari detail indeks:
// 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);
seharusnyaprintjson(idx);