Nota
Esta página describe las funciones de consulta de texto para implementaciones autogestionadas (no Atlas). Para los datos alojados en MongoDB Atlas, MongoDB ofrece una solución mejorada de consulta de texto completo, Atlas Search, y una solución de búsqueda vectorial, Atlas Vector Search.
Marco de consulta
Uso el $textOperador de consulta para realizar búsquedas de texto en una colección con un índice de texto.
$text tokeniza la cadena de búsqueda utilizando espacios en blanco y la mayoría de los signos de puntuación como delimitadores, y realiza un OR lógico de todos esos tokens en la cadena de búsqueda.
Por ejemplo, puede utilizar la siguiente consulta para encontrar todas las tiendas que contengan cualquier término de la lista "café", "tienda" y "java" en la stores colección:
db.stores.find( { $text: { $search: "java coffee shop" } } )
Usa el operador del query $meta para obtener y ordenar por la puntuación de relevancia de cada documento coincidente. Por ejemplo, para ordenar una lista de cafeterías en función de relevancia, ejecuta lo siguiente:
db.stores.find( { $text: { $search: "coffee shop cake" } }, { score: { $meta: "textScore" } } ).sort( { score: { $meta: "textScore" } } )
Para obtener más información sobre los operadores y, incluidas las restricciones y el comportamiento,$text $meta consulte:
$metaoperador de proyección
Pipeline de agregación
Cuando trabajes con pipeline de agregación, utiliza $match con una expresión $text para ejecutar una consulta de búsqueda de texto. Para ordenar los resultados según el puntaje de relevancia, use el $meta operador de agregación en la etapa $sort [1].
Para obtener más información y ejemplos de $text en las canalizaciones de operaciones de agregación, consulte $text en la canalización de agregación en implementaciones autoadministradas.
Para los datos alojados en MongoDB Atlas, Atlas Search proporciona la etapa de agregación $search para realizar una búsqueda de texto completo en sus colecciones.
| [1] | El comportamiento y los requisitos del $meta operador de proyección difieren de los del $meta operador de agregación. Para obtener más información sobre el $meta operador de agregación, consulte la $meta página de referencia del operador de agregación. |