MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Ottieni un elenco di indici in MongoDB

In MongoDB, puoi usare getIndexes() metodo per ottenere un elenco di indici su una raccolta.

Puoi anche scorrere ogni raccolta in un database per restituire tutti gli indici nel database.

Elenca indici per una raccolta specifica

Il db.collection.getIndexes() restituisce gli indici su una data raccolta. Sostituisci la collection parte per il nome effettivo della collezione.

Più specificamente, questo metodo restituisce un array che contiene un elenco di documenti che identificano e descrivono gli indici esistenti nella raccolta, inclusi gli indici nascosti.

Esempio:

db.posts.getIndexes()

Risultato:

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

In questo esempio, i posts raccolta ha tre indici.

Elenca tutti gli indici nel database corrente

Possiamo fare un ulteriore passo avanti nell'esempio precedente e farlo scorrere tutte le raccolte nel database corrente, elencando tutti gli indici per ciascuna raccolta.

Codice di esempio:

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

Esempio di risultato:

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 questo esempio sono presenti quattro raccolte:articoli, dipendenti, post e prodotti, ciascuno con uno o più indici.