MongoDB listar todos os índices para um banco de dados

MongoDB listar todos os índices para um banco de dados
Podemos usar o método ListIndexes para buscar todos os índices em uma determinada coleção. Este método é um comando de banco de dados e é suportado no driver específico do idioma.

A sintaxe do comando é como mostrado no seguinte:

dB.comando de execução (

ListIndexes: "",
cursor: batchSize: ,
Comente:

)

Os parâmetros suportados são os seguintes:

  1. Coleção_name - Especifica o nome da coleção de destino como um tipo de string.
  2. BatchSize - Especifica o tamanho do lote para o cursor.
  3. Comentário - Comentário do usuário para o comando especificado.

Considere a seguinte consulta de exemplo:

dB.RuCommand (listindexes: "hulu")

A consulta dada chama o comando listindexes na coleção "hulu". Isso deve retornar todos os índices para a coleção específica, conforme mostrado na seguinte saída:


Cursor:
ID: Long ("0"),
ns: 'entretenimento.hulu ',
primeiro lote: [
v: 2, chave: _id: 1, nome: '_id_',

V: 2,
chave: release_year: 1,
Nome: 'Release_year_index',
Esparso: Falso

]
,
OK: 1

Como não especificamos o tamanho do lote para o cursor, o comando retorna todos os resultados do comando listindexes.

Para mostrar apenas um resultado, podemos definir o parâmetro BatchSize como 1, como mostrado no seguinte:

dB.RuCommand (listindexes: "hulu", cursor: BatchSize: 1)

Nesse caso, o comando deve retornar uma saída como mostrado no seguinte:


Cursor:
ID: Long ("6609474838031556340"),
ns: 'entretenimento.hulu ',
FirstBatch: [v: 2, chave: _id: 1, nome: '_id_']
,
OK: 1

Você pode aumentar o lotes para obter mais informações sobre os índices na coleção.

MongoDB mostra todos os índices em um banco de dados

Suponha que desejemos mostrar todos os índices em todas as coleções de um banco de dados especificado. Para isso, podemos usar a função foreach para iterar em cada coleção no banco de dados e listar seus índices correspondentes.

Um exemplo de consulta é como mostrado no seguinte:

dB.getCollectionNames ().foreach (função (coleta) all_indexes = db.getCollection (coleção).listIndexes (); print ("índices de" + coleta + ":->"); printjson (all_indexes); );

A consulta anterior começa buscando todos os nomes de coleções em um determinado banco de dados usando o método getCollectionNames (). Em seguida, iteramos sobre cada coleção no banco de dados e os passamos como parâmetros do método getIndexes ().

Finalmente, salvamos cada resultado na variável all_indexes. Para obter uma saída legível humana, usamos os métodos de impressão e printjson para melhor formatação.

Isso deve retornar todas as coleções e seus índices correspondentes, como mostrado no seguinte:

[[
v: 2, chave: _id: 1, nome: '_id_',

V: 2,
chave: _fts: 'text', _ftsx: 1,
Nome: 'Classificação',
Esparso: Falso,
Pesos: Classificação: 1,
Default_Language: 'Inglês',
idioma_override: 'idioma',
TextIndexversion: 3

]
Índices da Amazon_prime:->
[[
v: 2, chave: _id: 1, nome: '_id_',

V: 2,
chave: _fts: 'text', _ftsx: 1,
Nome: 'Content_type',
Esparso: Falso,
pesos: tipo: 1,
Default_Language: 'Inglês',
idioma_override: 'idioma',
TextIndexversion: 3

]
Índices de Hulu:->
[[
v: 2, chave: _id: 1, nome: '_id_',

V: 2,
chave: release_year: 1,
Nome: 'Release_year_index',
Esparso: Falso

]

Em nosso exemplo, temos três coleções, cada uma com um índice, como mostrado na matriz de saída anterior.

Conclusão

Neste post, discutimos como usar o método listindexes () para obter a lista de todos os índices em uma determinada coleção. Também discutimos como criar um script simples para obter todos os índices e sua coleção associada em um determinado banco de dados.

Codificação feliz!