Este tutorial demuestra cómo ejecutar consultas específicas de cadenas en campos que no son cadenas, convirtiendo los campos a cadenas y almacenándolos en un vista materializada. La vista materializada permite usar operadores específicos de cadena para consultar los campos convertidos y mantener los datos originales intactos en la colección de origen.
Este tutorial sigue estos pasos:
Antes de comenzar, asegúrese de que su clúster cumpla con los requisitos descritos en los prerrequisitos.
Crear una vista 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.
Crea índices de búsqueda de MongoDB en la vista 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.
The following JSON definitions define MongoDB Search indexes on the airbnb_mat_view materialized view. You can use dynamic or static mappings to specify which fields you want to index in your collection, depending on the type of queries you want to run. To learn more about field mappings or MongoDB Search index syntax, see Define Field Mappings for a MongoDB Search Index or Index Reference, respectively.
La siguiente definición de índice de búsqueda JSON MongoDB Search utiliza mapeos dinámicos para indexar los campos en la vista materializada. Puedes utilizar este índice para ejecutar consultas usando el operador queryString.
No puedes ejecutar consultas usando el operador de autocompletado en campos indexados dinámicamente.
{ "mappings": { "dynamic": true } }
La siguiente definición de índice JSON MongoDB Search utiliza mapeos estáticos para indexar los campos en la vista materializada como el tipo de autocompletado. Puedes usar este índice para ejecutar consultas utilizando el operador de autocompletado.
No puedes ejecutar consultas utilizando el operador queryString en 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 aprender cómo crear los índices definidos anteriormente usando tu interfaz preferida, consulta Clientes compatibles.
Ejecutar consultas en los campos convertidos
Se pueden ejecutar consultas sobre los campos numéricos y de fecha que se convirtieron en cadenas. Este tutorial utiliza los operadores queryString y autocompletar para buscar propiedades. La consulta utiliza las siguientes etapas de la pipeline:
$searchescenario para buscar en la colección$limitstage to limit the output to5results$projectetapa que se debe excluir_id
En esta sección, te conectas a tu clúster y ejecutas las consultas de muestra utilizando el operador sobre los campos en la colección airbnb_mat_view.
Nota
Query with queryString
The following procedure runs queryString queries against the converted fields. Use the index that you created with dynamic mappings.
Query with autocomplete
The following procedure runs autocomplete queries against the converted fields. Use the index that you created with static mappings.