Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

72
Views
Consulta para devolver un campo de un json anidado usando MongoDB

Mi base de datos tiene datos en el siguiente formato:

 { "_id" : ObjectId( "abcd" ), "coordinate" : [somevalue, somevalue], "value" : [ { "time" : 1, "characteristics" : "pqrs" }, { "time" : 10, "characteristics" : "pqrs" } ] }

Quiero encontrar la coordenada más cercana del campo y un tiempo que sea menor o igual a un valor dado.

Actualmente estoy usando esta consulta:

 db.collection.aggregate({ coordinate: { $geoNear: [latitude, longitude], $maxDistance: 10 }, "value.time": { $lte: 5 } })

Este devolvió la entrada completa, pero lo que quería es el campo:

 { "time" : 1, "characteristics" : "pqrs" }

¿Es posible incluso devolver este campo? ¿Qué pasa si hay varios resultados y solo quiero el que está más cerca de mi entrada value.time ?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede realizar una agregación a:

  • $match elementos con la coordinate y value.time especificados
  • Matriz de value $filter para eliminar todo <5
  • matriz de valor $unwind
  • $group por valor máximo

consulta es:

 db.collection.aggregate({ $match: { coordinate: { $geoNear: [0, 0], $maxDistance: 10 }, "value.time": { $lte: 5 } } }, { $project: { value: { $filter: { input: "$value", as: "value", cond: { $lte: ["$$value.time", 5] } } } } }, { $unwind: "$value" }, { $group: { _id: "$_id", time: { $max: "$value.time" }, characteristics: { $first: "$value.characteristics" } } })

Salida de muestra:

 { "_id" : ObjectId("588a8c3080a14de2d654eb7b"), "time" : 4, "characteristics" : "pqrs" } { "_id" : ObjectId("588a89327fe89686fd2210b2"), "time" : 1, "characteristics" : "pqrs" }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!