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

MongoDB búsqueda

En esta guía, puedes aprender cómo query un índice de MongoDB Search y utilizar la funcionalidad avanzada de búsqueda de texto completo en tus aplicaciones PyMongo. Puede query un índice de búsqueda utilizando 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 for 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 Comienza con 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 utilizar la etapa de canalización de agregación $search, debes especificar un operador del query MongoDB Search que indique el tipo de query que deseas ejecutar. También puedes especificar opcionalmente un recolector que agrupe los resultados por valores o rangos. Para ver una tabla de todos los operadores y recolectores disponibles con MongoDB Search, consulta Utiliza operadores y recolectores en consultas de MongoDB Search.

El siguiente ejemplo utiliza el operador compound para combinar varios operadores en una única query. Para aprender más sobre el compound operador, consulte la guía de operador compuesto 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 string 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 MongoDB Search disponibles, consulta la guía Operadores y colectores 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