Menu Docs

Página inicial do DocsIniciar e gerenciar o MongoDBMongoDB Atlas

Como executar consultas de string de pesquisa do Atlas Search em campos numéricos e de data

Nesta página

  • Crie uma visualização materializada na collection
  • Criar índices de pesquisa do Atlas em campos na visualização materializada
  • Executar pesquisa de texto em campos convertidos

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:

  1. Crie uma visualização materializada nos campos name sample_airbnb.listingsAndReviews da collection , property_type, last_scraped e accomodates .

  2. Configure índices dinâmicos e estáticos do Atlas Search na visualização materializada.

  3. 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.

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.

1

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.

2
  1. 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
  2. Execute o seguinte comando para alternar para o banco de dados sample_airbnb .

    use sample_airbnb
    switched to db sample_airbnb
3

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 formato YYYY-MM-DD usando $dateToString.

    • Inclui campos de string name e property_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 denominada airbnb_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" } }
    ] )
4

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'
}

Nesta seção, você criará índices do Atlas Search nos campos lastScrapedDate, name, propertyType, accommodatesNumber e maximumNumberOfNights para executar queries nestes campos.

1
  1. Se ainda não estiver exibido, selecione a organização que contém o projeto desejado no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Se a página Database Deployments ainda não estiver exibida, clique em Database na barra lateral.

2
  1. Clique no nome do seu cluster.

  2. Clique na aba Atlas Search.

3
4
  • Para uma experiência guiada, selecione Visual Editor.

  • Para editar a definição do índice, selecione JSON Editor.

5
  1. No campo Index Name, digite date-number-fields-tutorial.

    Observação

    Se você nomear seu índice como default, não precisará especificar um parâmetro index ao usar o estágio do pipeline $search. Caso contrário, você deve especificar o nome do índice utilizando o parâmetro index.

  2. Na seção Database and Collection, localize o banco de dados sample_airbnb e selecione a coleção airbnb_mat_view.

6

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.

7

Observação

A janela modal You're All Set! aparece para que você saiba que seu índice está construindo.

8

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 a 5 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.


← Como Executar Consultas de Pesquisa do Atlas com um Filtro de Intervalo de Datas