Este tutorial demonstra como executar consultas específicas de strings em campos não-string, convertendo-os em strings e armazenando-os em uma visualização materializada. A visualização materializada permite que você use operadores específicos de string para query os campos convertidos e manter os dados originais intactos na coleção de origem.
Este tutorial orienta você pelas seguintes etapas:
Antes de começar, certifique-se de que seu cluster atenda aos requisitos descritos nos pré-requisitos.
Criar uma visualização materializada
This section demonstrates how to create a materialized view named airbnb-mat-view on the sample_airbnb.listingsAndReviews collection. This view stores various numeric and date fields from the source collection as string fields.
Criar índices de pesquisa MongoDB na visualização materializada
To run the queries in the Run Queries on the Converted Fields stage of this tutorial, you need to create MongoDB Search indexes on the converted string fields in your airbnb_mat_view materialized view.
As seguintes definições JSON definem índices de pesquisa do MongoDB Search na visualização materializada airbnb_mat_view. Você pode usar mapeamentos dinâmicos ou estáticos para especificar quais campos você deseja indexar em sua coleção, dependendo do tipo de query que você deseja executar. Para saber mais sobre mapeamentos de campo ou sintaxe de índice do MongoDB Search, consulte Definir mapeamentos de campo para um índice de pesquisa do MongoDB Search ou Referência de índice, respectivamente.
A seguinte definição de índice JSON MongoDB Search utiliza mapeamentos dinâmicos para indexar os campos na visualização materializada. Você pode usar esse índice para executar queries usando o operador queryString.
Você não pode executar queries usando o operador autocomplete em campos indexados dinamicamente.
{ "mappings": { "dynamic": true } }
A seguinte definição de índice JSON MongoDB Search utiliza mapeamentos estáticos para indexar os campos na visualização materializada como o tipo autocomplete. Você pode usar esse índice para executar queries usando o operador de preenchimento automático.
Você não pode executar queries utilizando o operador queryString em campos indexados como tipo autocomplete.
{ "mappings": { "dynamic": false, "fields": { "accommodatesNumber": [ { "dynamic": true, "type": "document" }, { "minGrams": 1, "type": "autocomplete" } ], "lastScrapedDate": [ { "dynamic": true, "type": "document" }, { "type": "autocomplete" } ], "maximumNumberOfNights": [ { "dynamic": true, "type": "document" }, { "minGrams": 1, "type": "autocomplete" } ] } } }
Para saber como criar os índices definidos acima usando sua interface preferida, consulte Clientes compatíveis.
Executar queries nos campos convertidos
Você pode executar queries nos campos numéricos e de data que foram convertidos em cadeias de caracteres. Este tutorial usa os operadores queryString e autocomplete para pesquisar propriedades. A query utiliza os seguintes estágios de pipeline:
$searchestágio para pesquisar a coleção.$limitstage to limit the output to5results$projectestágio a ser excluído_id
Nesta seção, você se conecta ao seu cluster e executa as queries de amostra usando o operador nos campos da collection airbnb_mat_view.
Observação
Você não pode executar queries próximas ou de intervalo em relação aos campos de data e número que foram convertidos em cadeias de caracteres em sua exibição materializada.
query com String de query
O procedimento a seguir executa consultas queryString nos campos convertidos. Use o índice que você criou com mapeamentos dinâmicos.
Query com autocompletar
O procedimento a seguir executa queries de autocomplete contra os campos convertidos. Use o índice que você criou com mapeamentos estáticos.