MongoDBでは、getIndexes()
を使用できます コレクションのインデックスのリストを取得するメソッド。
データベース内の各コレクションをループして、データベース内のすべてのインデックスを返すこともできます。
特定のコレクションのインデックスを一覧表示する
db.collection.getIndexes()
メソッドは、指定されたコレクションのインデックスを返します。 collection
に置き換えます コレクションの実際の名前の一部。
より具体的には、このメソッドは、非表示のインデックスを含む、コレクション上の既存のインデックスを識別および説明するドキュメントのリストを保持する配列を返します。
例:
db.posts.getIndexes()
結果:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "title" : 1 }, "name" : "title_1" }, { "v" : 2, "key" : { "tags" : 1 }, "name" : "tags_1" } ]
この例では、posts
コレクションには3つのインデックスがあります。
現在のデータベース内のすべてのインデックスを一覧表示する
前の例をさらに一歩進めて、現在のデータベース内のすべてのコレクションをループさせ、各コレクションのすべてのインデックスを一覧表示することができます。
コード例:
db.getCollectionNames().forEach(function(collection) {
indexes = db.getCollection(collection).getIndexes();
print("Indexes on " + collection + ":");
printjson(indexes);
});
結果の例:
Indexes on articles: [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ] Indexes on employees: [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ] Indexes on posts: [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "title" : 1 }, "name" : "title_1" }, { "v" : 2, "key" : { "tags" : 1 }, "name" : "tags_1" } ] Indexes on products: [ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
この例では、記事、従業員、投稿、商品の4つのコレクションがあり、それぞれに1つ以上のインデックスがあります。