← Questões de Banco de Dados

Banco de Dados · FGV · 2025

Questão comentada de Banco de Dados

Observe os seguintes conjuntos de dados e o comando executado no banco de dados processo do MongoDB. Coleção: { "_id": 1, "descricao": "Processo trabalhista envolvendo direitos do trabalhador" } { "_id": 2, "descricao": "Contrato de trabalho com cláusulas trabalhistas" } { "_id": 3, "descricao": "Processo administrativo de aposentadoria" } Consulta: db.processo.find({ $text: { $search: "trabalhista" } }) .sort({ score: { $meta: "textScore" } }) Resultado: [ { "_id": 1, "descricao": "Processo trabalhista envolvendo direitos do trabalhador", "score": 1.2 }, { "_id": 2, "descricao": "Contrato de trabalho com cláusulas trabalhistas", "score": 0.9 } ] No Mongosh, para criar um índice visando a otimizar a execução da consulta apresentada com palavra(s) específica(s) em um campo contendo strings, deve-se executar o comando:

Gabarito: C

Quando a consulta no MongoDB usa $text com uma palavra-chave, ela pede um índice textual, que foi feito exatamente para pesquisar termos dentro de campos do tipo string. É o caso da busca por "trabalhista" na coleção processo: o banco precisa localizar ocorrências de palavras no texto e ainda pode ranquear os resultados por relevância usando o textScore. Isso explica por que o primeiro documento, mais aderente ao termo, aparece com score maior. No MongoDB, a criação do índice textual é feita com o tipo "text" no campo desejado. Assim, o comando db.processo.createIndex({"descricao":"text"}) prepara o banco para consultas como $text e melhora bastante o desempenho dessas buscas por conteúdo. Em outras palavras: não é índice numérico, nem hash, nem geoespacial - aqui o assunto é texto mesmo. As demais opções tentam confundir com tipos de índice usados para outras finalidades. Índice "2" não faz sentido nesse contexto, "2d" e "2dsphere" são relacionados a dados geográficos, e "hashed" é usado para distribuição e certas consultas exatas, não para busca textual. Então, para pesquisa por palavras em um campo string, o caminho certo é o índice textual. Na prática do MongoDB, isso é um recurso nativo e bem documentado para full-text search simples.

Continue treinando

Questões relacionadas