MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Rufen Sie eine Liste der Indizes in MongoDB ab

In MongoDB können Sie getIndexes() verwenden Methode, um eine Liste von Indizes für eine Sammlung zu erhalten.

Sie können auch jede Sammlung in einer Datenbank durchlaufen, um alle Indizes in der Datenbank zurückzugeben.

Indizes für eine bestimmte Sammlung auflisten

Die db.collection.getIndexes() -Methode gibt die Indizes für eine bestimmte Sammlung zurück. Ersetzen Sie die collection Teil für den eigentlichen Namen der Sammlung.

Genauer gesagt gibt diese Methode ein Array zurück, das eine Liste von Dokumenten enthält, die die vorhandenen Indizes der Sammlung identifizieren und beschreiben, einschließlich versteckter Indizes.

Beispiel:

db.posts.getIndexes()

Ergebnis:

[
	{
		"v" : 2,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_"
	},
	{
		"v" : 2,
		"key" : {
			"title" : 1
		},
		"name" : "title_1"
	},
	{
		"v" : 2,
		"key" : {
			"tags" : 1
		},
		"name" : "tags_1"
	}
]

In diesem Beispiel die posts Sammlung hat drei Indizes.

Alle Indizes in der aktuellen Datenbank auflisten

Wir können das vorherige Beispiel noch einen Schritt weiterführen und alle Sammlungen in der aktuellen Datenbank durchlaufen lassen, wobei alle Indizes für jede Sammlung aufgelistet werden.

Beispielcode:

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

Beispielergebnis:

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_" } ]

In diesem Beispiel gibt es vier Sammlungen:Artikel, Mitarbeiter, Beiträge und Produkte, jede mit einem oder mehreren Indizes.