Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Cómo buscar datos no alfabéticos como cadenas

Este tutorial demuestra cómo ejecutar queries específicas de strings en campos que no son strings convirtiendo los campos en strings y almacenándolos en un vistas materializadas. La vista materializada permite utilizar operadores específicos de cadenas para consultar los campos convertidos y mantener los datos originales intactos en la colección de origen.

Este tutorial sigue estos pasos:

  1. Crea una vista materializada en una colección de muestra

  2. Crea índices de MongoDB Search en la vista materializada

  3. Ejecuta consultas de búsqueda de MongoDB contra los campos convertidos en la vista materializada

Antes de empezar, asegúrese de que su clúster cumpla con los requisitos descritos en el Prerrequisitos.

En esta sección se muestra cómo crear una vista materializada llamada airbnb-mat-view on the sample_airbnb.listingsAndReviews collection. This view stores various numeric and date fields from the source collection as string fields.

Para ejecutar las consultas en la etapa Ejecutar consultas en los campos convertidos de este tutorial, es necesario crear índices de MongoDB Search en los campos de string convertidos en tu airbnb_mat_view vista materializada.

El siguiente JSON las definiciones definen los índices de MongoDB Search en la vista materializada airbnb_mat_view. Puedes usar asignaciones dinámicas o estáticas para especificar en tu colección los campos que deseas indexar, dependiendo del tipo de query que quieras realizar. Para obtener más información sobre la comparación de campos o la sintaxis del índice MongoDB Search, consulta Definir la comparación de campos o Referencia del índice, respectivamente.

La siguiente definición de índice de búsqueda MongoDB JSON utiliza mapeos dinámicos para indexar los campos en la vista materializada. Puede usar este índice para ejecutar consultas mediante 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.

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:

  • $search escenario para buscar en la colección

  • Etapa $limit para limitar la salida a resultados 5

  • $project etapa 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

No puedes realizar consultas cercanas o de rango en los campos de fecha y número que se convirtieron a cadenas en tu vista materializada.

Volver

Diseña la búsqueda para el modelo de datos

En esta página