sql >> Base de Datos >  >> NoSQL >> MongoDB

Obtenga una lista de índices en MongoDB

En MongoDB, puede usar getIndexes() método para obtener una lista de índices en una colección.

También puede recorrer cada colección en una base de datos para devolver todos los índices en la base de datos.

Lista de índices para una colección específica

db.collection.getIndexes() El método devuelve los índices de una colección determinada. Sustituye la collection parte del nombre real de la colección.

Más específicamente, este método devuelve una matriz que contiene una lista de documentos que identifican y describen los índices existentes en la colección, incluidos los índices ocultos.

Ejemplo:

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

En este ejemplo, las posts colección tiene tres índices.

Lista de todos los índices en la base de datos actual

Podemos llevar el ejemplo anterior un paso más allá y hacer que recorra todas las colecciones en la base de datos actual, enumerando todos los índices para cada colección.

Código de ejemplo:

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

Resultado de ejemplo:

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

En este ejemplo, hay cuatro colecciones:artículos, empleados, publicaciones y productos, cada uno con uno o más índices.