1
resposta

Não consegui entender direito como posso manipular os index's.

Entendi que o índex é uma espécie de atalho para consulta e necessário para fazer uma busca por distância utilizando coordenadas. Mas eles são salvos para cada alunos, por coleção? E como posso visualizar os valores de cada index? Pois tentei utilizando.

db.collection.getIndexes({ "listIndexes": "alunos" })

Mas não entendi a informação que ele me trouxe:

[
        {
                "v" : 2,
                "key" : {
                        "_id" : 1
                },
                "name" : "_id_",
                "ns" : "test.alunos"
        },
        {
                "v" : 2,
                "key" : {
                        "localizacao" : "2dsphere"
                },
                "name" : "localizacao_2dsphere",
                "ns" : "test.alunos",
                "2dsphereIndexVersion" : 3
        }
]
1 resposta

Oi Angela, tudo bem? Na verdade os índices são registros que ajudam o MongoDB utiliza para otimizar a busca por documentos nas coleções. Sem eles, o Mongo precisa varrer documento a documento procurando o que sua query pediu. Com eles, no momento da busca o Mongo já consegue inferir documentos que ele não precisa verificar.

Tá descrito no primeiro parágrafo da documentação: https://docs.mongodb.com/manual/indexes/

Considerando isso, ele pode guardar índices direto na coleção ou no documento, o _id na verdade é um desses índices que são criados dentro do próprio documento.

Pra gerenciar os índices, há vários comandos, e o getIndexes por exemplo, é uma forma de listar todos os índices que uma coleção tem, sem passar nenhum parâmetro.

Para mais comandos, eu recomendo ver a documentação: https://docs.mongodb.com/manual/tutorial/manage-indexes/

Mas ago que não ficou muito claro pra mim é: o que você pensa em fazer com o índice?