Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Ejecuta una MongoDB Search query

En esta guía, aprenderá a consultar un índice de búsqueda de MongoDB y a usar la función de búsqueda avanzada de texto completo en sus aplicaciones con controlador Ruby. Puede consultar un índice de búsqueda mediante un $search etapas del pipeline de agregación.

Para obtener más información sobre la etapa $search del pipeline, consulte el $search guía en el manual del MongoDB Server.

Nota

Atlas y requisitos de versión de Community Edition

El operador $search pipeline de agregación está disponible únicamente para colecciones alojadas en clústeres de MongoDB Atlas que ejecutan MongoDB v4.2 o posterior, o en clústeres de MongoDB Community Edition que ejecutan MongoDB v8.2 o posterior. Las colecciones deben estar cubiertas por un índice de búsqueda MongoDB. Para obtener más información sobre la configuración necesaria y la funcionalidad de este operador, consulta la documentación de MongoDB Search.

Los ejemplos en esta guía utilizan la colección sample_mflix.movies de los conjuntos de datos de muestra de Atlas. Para aprender cómo crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulta Introducción al controlador Ruby.

Antes de poder realizar una búsqueda en una colección de Atlas, primero debes crear un índice de búsqueda de MongoDB en la colección. Un índice de MongoDB Search es una estructura de datos que categoriza los datos en un formato buscable. Para aprender a crear un índice de búsqueda de MongoDB, consulta la guía de MongoDB Search y MongoDB Vector Search Indexes.

Para usar la etapa de la canalización de agregación $search, debe especificar un operador del query MongoDB Search que indique el tipo de query que desea ejecutar. Opcionalmente, puedes usar un recopilador para especificar los valores y rangos de la salida de la query. Para ver una tabla de todos los operadores y colectores disponibles con MongoDB Search, consulta la página Operadores y Coleccionadores en la documentación de Atlas.

El siguiente ejemplo usa el operador compound para combinar varios operadores en una sola query. Para obtener más información, consulta la guía Operador compuesto en la documentación de Atlas.

La query tiene los siguientes criterios de búsqueda:

  • El campo genres no debe contener Comedy.

  • El campo title debe contener la cadena New York.

La query también incluye las siguientes etapas:

  • $limitpara limitar la salida a 10 resultados.

  • $project, para excluir todos los campos excepto title y añadir un campo llamado score.

pipeline = [
{
"$search" => {
"index" => "index_name",
"compound" => {
"mustNot" => [
{
"text" => {
"query" => ["Comedy"],
"path" => "genres"
}
}
],
"must" => [
{
"text" => {
"query" => ["New York"],
"path" => "title"
}
}
]
}
}
},
{ "$limit" => 10 },
{
"$project" => {
"_id" => 0,
"title" => 1,
"score" => { "$meta" => "searchScore" }
}
}
]
result = collection.aggregate(pipeline)
puts result.to_a
{'title': 'New York, New York', 'score': 6.786379814147949}
{'title': 'New York', 'score': 6.258603096008301}
{'title': 'New York Doll', 'score': 5.381444931030273}
{'title': 'Escape from New York', 'score': 4.719935417175293}
{'title': 'Autumn in New York', 'score': 4.719935417175293}
{'title': 'Sleepless in New York', 'score': 4.719935417175293}
{'title': 'Gangs of New York', 'score': 4.719935417175293}
{'title': 'Sherlock Holmes in New York', 'score': 4.203253746032715}
{'title': 'New York: A Documentary Film', 'score': 4.203253746032715}
{'title': 'An Englishman in New York', 'score': 4.203253746032715}

Para obtener más información sobre los operadores de búsqueda de MongoDB disponibles, consulte la guía Operadores y recopiladores en la documentación de MongoDB Atlas.

Para obtener más información sobre MongoDB Search y ver más ejemplos de consultas, consulta la Documentación de MongoDB Search.

Si deseas realizar búsquedas vectoriales en tus datos almacenados en Atlas, debes usar MongoDB Vector Search. Para obtener más información sobre MongoDB Vector Search, consulta la documentación de MongoDB Vector Search.

Volver

Geoespacial

En esta página