sql >> Databasteknik >  >> NoSQL >> MongoDB

Få en lista över index i MongoDB

I MongoDB kan du använda getIndexes() metod för att få en lista över index på en samling.

Du kan också gå igenom varje samling i en databas för att returnera alla index i databasen.

Lista index för en specifik samling

db.collection.getIndexes() metod returnerar indexen på en given samling. Ersätt collection del för det faktiska namnet på samlingen.

Mer specifikt returnerar den här metoden en array som innehåller en lista med dokument som identifierar och beskriver befintliga index på samlingen, inklusive dolda index.

Exempel:

db.posts.getIndexes()

Resultat:

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

I det här exemplet, posts samlingen har tre index.

Lista alla index i den aktuella databasen

Vi kan ta det föregående exemplet ett steg längre och låta det gå igenom alla samlingar i den aktuella databasen, med en lista över alla index för varje samling.

Exempelkod:

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

Exempelresultat:

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

I det här exemplet finns det fyra samlingar:artiklar, anställda, inlägg och produkter, var och en med ett eller flera index.


  1. Microservices Architecture för mycket frekvent dataåtkomst; i minneslösningar?

  2. Använder StackExchange.Redis-klient med Redis-kluster

  3. Med säkerhetskopieringskryptering för MySQL, MongoDB och PostgreSQL - ClusterControl 1.5.1

  4. Hur skapar man en modell i DRY-mönster med hjälp av flow.js (för asynkrona anrop) i node.js?