MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Obter uma lista de índices no MongoDB


No MongoDB, você pode usar o getIndexes() para obter uma lista de índices em uma coleção.

Você também pode percorrer cada coleção em um banco de dados para retornar todos os índices no banco de dados.

Listar índices para uma coleção específica


O db.collection.getIndexes() O método retorna os índices em uma determinada coleção. Substitua a collection parte para o nome real da coleção.

Mais especificamente, esse método retorna uma matriz que contém uma lista de documentos que identificam e descrevem os índices existentes na coleção, incluindo índices ocultos.

Exemplo:
db.posts.getIndexes()

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

Neste exemplo, as posts coleção tem três índices.

Listar todos os índices no banco de dados atual


Podemos levar o exemplo anterior um passo adiante e fazer um loop por todas as coleções no banco de dados atual, listando todos os índices de cada coleção.

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

Exemplo de resultado:
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_" } ]

Neste exemplo, há quatro coleções:artigos, funcionários, postagens e produtos, cada uma com um ou mais índices.