Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

235
Vistas
Use variables en el agregador geonear en Python Eve con MongoDB

Estoy tratando de usar Eve para consultar una base de datos MongoDB con el operador de agregación geoNear, pero obtengo lo siguiente cuando uso variables agregadas:

'OperationFailure: el comando geoNear falló: { ok: 0.0, errmsg: "el campo 'cercano' debe ser un punto", código: 17304, codeName: "Ubicación17304" }'

El punto final de agregación se configura en settings.py de la siguiente manera:

 geoAggr = {'datasource':{ 'source':'geo', 'aggregation': { 'pipeline': [ {'$geoNear':{ 'near': {'type':'Point', 'coordinates':['$lon', '$lat']}, 'distanceField':'distance', 'maxDistance':'$maxDistance', 'spherical': True, 'query':{ 'recentAnalyses.KeywordCombinationAll /300 v1':{ '$exists': True } } }} ] } }}

Se consulta mediante POSTMAN con una solicitud GET a xxx.xxx.xxx.xxx:5000/geoAggr?aggregate={"$lon":"10.5","$lat":"10.5","$maxDistance":100000} .

Si $lon y $lat se reemplazan por valores codificados, el agregador funciona perfectamente, por lo que parece tener algo que ver con la forma en que se colocan las variables en el agregador. Lo primero que pensé fue que los números pueden interpretarse como cadenas, pero el parámetro $maxDistance funciona como se esperaba.

¿Por qué no funciona con las variables?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Parece que las variables dentro de las matrices no se reemplazan (no estoy seguro de si esto es correcto en todos los casos, pero lo es en este), lo que tiene sentido.

Reemplazando 'coordinates':['$lon', '$lat'] con 'coordinates':'$coords' y accediendo con xxx.xxx.xxx.xxx:5000/geoAggr?aggregate={"$coords":[10.5,10.5],"$maxDistance":100000} funciona.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda