Página inicial do Docs → Iniciar e gerenciar o MongoDB → MongoDB Atlas
Como executar consultas de string de pesquisa do Atlas Search em campos numéricos e de data
Nesta página
Este tutorial descreve como executar queries do Atlas Search nos campos string
, date
e number
na collection sample_airbnb.listingsAndReviews
. Você criará umavisualização materializada do que armazena os valores de campo numéricos e de data como strings. Em seguida, você criará um índice do Atlas Search na visualização materializada e executará queries nesses campos de string usando os operadores queryString e autocomplete . Este tutorial orienta você pelas seguintes etapas:
Crie uma visualização materializada nos campos
name
sample_airbnb.listingsAndReviews
da collection ,property_type
,last_scraped
eaccomodates
.Configure índices dinâmicos e estáticos do Atlas Search na visualização materializada.
Execute queries do Atlas Search nos campos da visualização materializada usando os operadores queryString e autocomplete para pesquisar propriedades.
Antes de começar, certifique-se de que seu Atlas cluster atenda aos requisitos descritos nos Pré-requisitos.
Para criar um índice do Atlas Search, você deve ter acesso do Project Data Access Admin
ou superior ao projeto.
Crie uma visualização materializada na collection
Nesta seção, você criará uma visualização materializada denominada airbnb-mat-view
para os campos name
, property_type
, last_scraped
, accomodates
e maximum_nights
na collection airbnb_listingsAndReviews
. A visualização materializada permite que você pegue os campos numéricos e de data na collection de origem e armazene-os como campos de string na visualização materializada.
Faça login no Atlas e conecte-se ao seu cluster usando mongosh
.
Abra o mongosh
em uma janela do terminal e conecte ao seu cluster. Para obter instruções detalhadas sobre a conexão, consulte Conectar via mongosh
.
Verifique e alterne para o banco de dados sample_airbnb
.
Execute o seguinte comando para verificar se o banco de dados existe em seu cluster:
show dbs sample_airbnb 55.3 MB sample_analytics 9.59 MB sample_geospatial 1.43 MB sample_guides 41 kB sample_mflix 51.1 MB sample_restaurants 6.95 MB sample_supplies 1.21 MB sample_training 55.5 MB sample_weatherdata 2.89 MB admin 348 kB local 2.1 GB Execute o seguinte comando para alternar para o banco de dados
sample_airbnb
.use sample_airbnb switched to db sample_airbnb
Crie uma visualização materializada denominada airbnb_mat_view
.
Para criar uma visualização materializada, execute a seguinte query. A query especifica os seguintes estágios do pipeline de agregação:
$project
: neste estágio, a query faz o seguinte:Converte o objeto de data
last_scraped
em uma string no formatoYYYY-MM-DD
usando$dateToString
.Inclui campos de string
name
eproperty_type
.Converte o campo de número
accomodates
em uma string utilizando$toString
.Converte o campo de número
maximum_nights
em uma string utilizando$toString
.
$merge
: neste estágio, a query grava os campos de saída do estágio$project
em uma visualização materializada denominadaairbnb_mat_view
.db.listingsAndReviews.aggregate( [ { $project: { lastScrapedDate: { $dateToString: { format: "%Y-%m-%d", date: "$last_scraped" } }, propertyName: "$name", propertyType: "$property_type", accommodatesNumber: { $toString: "$accommodates" }, maximumNumberOfNights: { $toString: "$maximum_nights" } } }, { $merge: { into: "airbnb_mat_view", whenMatched: "replace" } } ] )
Verifique se a visualização materializada foi criada com sucesso.
Para verificar, execute o seguinte comando:
db.airbnb_mat_view.findOne()
{ _id: '10006546', lastScrapedDate: '2019-02-16', propertyName: 'Ribeira Charming Duplex', propertyType: 'House', accommodatesNumber: '8', maximumNumberOfNights: '30' }
Criar índices de pesquisa do Atlas em campos na visualização materializada
Nesta seção, você criará índices do Atlas Search nos campos lastScrapedDate
, name
, propertyType
, accommodatesNumber
e maximumNumberOfNights
para executar queries nestes campos.
No Atlas, acesse a página Database Deployments do seu projeto.
Se ainda não estiver exibido, selecione a organização que contém o projeto desejado no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se a página Database Deployments ainda não estiver exibida, clique em Database na barra lateral.
Insira o Index Name e defina o Database and Collection.
No campo Index Name, digite
date-number-fields-tutorial
.Observação
Se você nomear seu índice como
default
, não precisará especificar um parâmetroindex
ao usar o estágio do pipeline $search. Caso contrário, você deve especificar o nome do índice utilizando o parâmetroindex
.Na seção Database and Collection, localize o banco de dados
sample_airbnb
e selecione a coleçãoairbnb_mat_view
.
Defina um índice nos campos na visualização materializada.
Você pode criar um dos seguintes índices:
Índice que usa mapeamentos dinâmicos para executar queries usando o operador queryString . Não é possível executar queries usando o operador de preenchimento automático se a definição do índice usar apenas mapeamentos dinâmicos.
Índice que utiliza mapeamentos estáticos para executar queries utilizando o operador de preenchimento automático . Você não pode executar queries usando o operador queryString em campos indexados como tipo
autocomplete
.
Executar pesquisa de texto em campos convertidos
Você pode executar queries nos campos numéricos e de data que foram convertidos em strings. Este tutorial usa operadores queryString e autocomplete para pesquisar propriedades. A consulta utiliza os seguintes estágios de pipeline:
$search
estágio para pesquisar a collection$limit
estágio para limitar a saída a5
resultados$project
estágio a ser excluído_id
Nesta seção, você se conectará ao seu Atlas cluster e executará as queries de amostra usando o operador nos campos da coleção 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.
➤ Use o menu suspenso Selecione seu idioma nesta página para definir o idioma dos exemplos nesta seção.