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
/ /

MongoDB búsqueda

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 de PyMongo. 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

Solo disponible en Atlas para MongoDB v4.2 y posteriores

El operador del pipeline de agregación $search está disponible únicamente para colecciones alojadas en clústeres MongoDB Atlas que ejecutan MongoDB v4.2 o posterior que estén cubiertos por un índice de MongoDB Search. Para obtener más información sobre la configuración requerida y la funcionalidad de este operador, consulta la documentación 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 Comience a utilizar PyMongo.

Antes de poder realizar una búsqueda en una colección de Atlas, primero debe crear un índice de Búsqueda MongoDB en la colección. Un índice de Búsqueda de MongoDB es una estructura de datos que clasifica la información en un formato que se puede buscar. Para saber cómo crear un índice de búsqueda de MongoDB, consulta Búsqueda de MongoDB e índices de búsqueda vectorial.

Para usar la $search etapa de canalización de agregación, debe especificar un operador de consulta de MongoDB Search que indique el tipo de consulta que desea ejecutar. Opcionalmente, también puede especificar un recopilador que agrupe los resultados por valores o rangos. Para ver una tabla con todos los operadores y recopiladores disponibles con MongoDB Search, consulte Usar operadores y recopiladores en consultas de MongoDB Search.

El siguiente ejemplo utiliza el compound operador para combinar varios operadores en una sola consulta. Para obtener más información sobre el compound operador, consulte la guía de operadores compuestos en la documentación de MongoDB 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.

client = pymongo.MongoClient("<connection-string>")
result = client["sample_mflix"]["movies"].aggregate([
{
"$search": {
"index": "pymongoindex",
"compound": {
"mustNot": [
{
"text": {
"query": [
"Comedy"
],
"path": "genres"
}
}
],
"must": [
{
"text": {
"query": [
"New York"
],
"path": "title"
}
}
],
}
}
},
{ "$limit": 10 },
{
"$project": {
"_id": 0,
"title": 1,
"score": { "$meta": "searchScore" }
}
}
])
for i in result:
print(i)
{'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

Ejecute un comando de base de datos

En esta página