Visão geral
Neste guia, você pode aprender como usar o driver Kotlin sincronização para executar queries de pesquisa do MongoDB Search em uma coleção. O MongoDB Search permite realizar pesquisas de texto completo em coleções hospedadas no MongoDB Atlas. Os índices de pesquisa do MongoDB especificam o comportamento da pesquisa e quais campos indexar.
Dados de amostra
Os exemplos deste guia usam a coleção movies no banco de dados sample_mflix dos conjuntos de dados de amostra do Atlas. Para aprender como criar uma implantação gratuita do MongoDB e carregar os conjuntos de dados de amostra, consulte o guia Get Started do MongoDB. Para saber mais sobre operações de agregação e construtores, consulte o guiaOperações de agregação.
Executar uma query de pesquisa do MongoDB
Esta seção mostra como criar um pipeline de agregação para executar uma query de pesquisa do MongoDB Search em uma coleção. Você pode usar o método construtor Aggregates.search() para criar um estágio de pipeline $search, que especifica os critérios de pesquisa. Em seguida, chame o método aggregate() e passe seu pipeline como um parâmetro.
Observação
Disponível apenas no Atlas para MongoDB v4.2 e posterior
Esse operador de pipeline de agregação só está disponível para coleção hospedada em clusters do MongoDB Atlas que executam v4.2 ou posterior que são cobertas por um índice de pesquisa do MongoDB. Saiba mais sobre a configuração necessária e a funcionalidade desse operador na documentação do MongoDB pesquisa.
Antes de executar uma query de pesquisa do MongoDB Search, você deve criar um índice de pesquisa do MongoDB Search em sua coleção. Para saber como criar programaticamente um índice de pesquisa do MongoDB, consulte a seção Criar um índice de pesquisa no guia Índices.
Exemplo de pesquisa do MongoDB
Este exemplo executa uma query de pesquisa do MongoDB Search executando as seguintes ações:
Constrói uma etapa
$searchusando o método construtorAggregates.search(), instruindo o driver a fazer query de documentos em que o campotitlecontém a palavra"Alabama"Constrói um estágio
$projectusando o método construtorAggregates.project(), instruindo o driver a incluir o campotitlenos resultados da queryPassa as fases do pipeline para o método
aggregate()e imprime os resultados
val pipeline: List<Bson> = listOf( search(SearchOperator.text( fieldPath("title"), "Alabama")), project(Projections.include("title")) ) val results = collection.aggregate(pipeline) results.forEach { doc -> println(doc.toJson()) }
{"_id": {"$oid": "..."}, "title": "Alabama Moon"} {"_id": {"$oid": "..."}, "title": "Crazy in Alabama"} {"_id": {"$oid": "..."}, "title": "Sweet Home Alabama"}
Metadados de pesquisa do MongoDB
Use o método searchMeta() para criar um estágio de pipeline $searchMeta, que retorna somente os metadados dos resultados da pesquisa de texto completo do Atlas.
Dica
Disponível apenas no Atlas para MongoDB v4,4,11 e posterior
Este operador de pipeline de agregação está disponível somente em clusters do MongoDB Atlas executando a versão v4.4.11 ou posterior.
O exemplo a seguir mostra os metadados near para um estágio de agregação do MongoDB pesquisa:
searchMeta( SearchOperator.near(2010, 1, fieldPath("year")) )
Informações adicionais
Para aprender mais sobre o MongoDB pesquisa, consulte MongoDB pesquisa na documentação do Atlas.
Documentação da API
Para saber mais sobre os métodos mencionados neste guia, consulte a seguinte documentação da API: