क्या शेल में मोंगोडब में एक संग्रह पर सूचकांकों की सूची देखने का एक तरीका है? मैं http://www.mongodb.org/display/DOCS/Indexes के माध्यम से पढ़ा, लेकिन मैं कुछ भी नहीं देख रहा हूँ
क्या शेल में मोंगोडब में एक संग्रह पर सूचकांकों की सूची देखने का एक तरीका है? मैं http://www.mongodb.org/display/DOCS/Indexes के माध्यम से पढ़ा, लेकिन मैं कुछ भी नहीं देख रहा हूँ
जवाबों:
यदि आप सभी सूचियों को सूचीबद्ध करना चाहते हैं:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes for " + collection + ":");
printjson(indexes);
});
और यदि आप अपने डेटाबेस में सभी अनुक्रमितों की सूची प्राप्त करना चाहते हैं:
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()
आपको बहुत सी रोचक जानकारी प्रदान करता है जैसे पेडिंगफैक्टर, संग्रह का आकार और उसके अंदर तत्वों की संख्या।
इस एक चरण आगे ले, अगर आप सभी संग्रह पर सभी अनुक्रमित प्राप्त करना चाहते हैं, यह स्क्रिप्ट (जुआन कार्लोस फराह की स्क्रिप्ट से संशोधित यहाँ ) आप सूचकांक विवरण की एक 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);