Estoy usando pymongo para consultar mi base de datos y obtener resultados para mi API. A partir de ahora, tengo un índice compuesto para realizar búsquedas de cadenas:
diseases_collection.create_index([('url', pymongo.TEXT), ('headline', pymongo.TEXT), ('main_text', pymongo.TEXT), ('reports', pymongo.TEXT), ('diseases', pymongo.TEXT), ('syndromes', pymongo.TEXT), ('event_reports', pymongo.TEXT)])Sin embargo, quiero una forma de buscar ubicaciones geográficas solo en el campo de informes, y no en los otros campos. ¿Cómo puedo hacer esto? Cada documento tiene la siguiente estructura (obviamente diferentes valores):
{ url: “http://outbreaks.globalincidentmap.com/eventdetail.php?ID=8237”, date_of_publication: “2011-02-22 12:29:00”, headline: “AUSTRALIA :: Anthrax scare closes Penrith tax office”, main_text: “[PenrithStar.com.au] AUSTRALIA :: Anthrax scare closes Penrith tax office At about 11.40am, a worker discovered some white powder, believed to have been part of a mail delivery.", reports: [ { diseases: “Anthrax”, syndromes: [], event_date: “2011-02-22 11:40:00”, locations: [“Sydney”, “Penrith”], event_reports:[“hospitalised”], } ] }Una colección puede tener como máximo un índice de texto. Cuando especifica varios campos para que se indexen por texto, todos se fusionan en un índice.
Por lo tanto, no puede consultar este índice por valores de solo algunos de los campos que ha indexado.