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

250
Views
¿Cómo obtener el último valor definido en una agregación en MongoDB?

Tengo una colección en la que los documentos a veces contienen un campo de status ya veces no. Siempre hay un campo data . Estoy tratando de formar una consulta para obtener el valor más reciente para ambos, pero cuando uso el operador $last , obtengo los valores del documento más reciente y, a veces, el status es null . ¿Cómo puedo hacer que recupere el último valor de status definido, manteniendo el valor de data del último documento?

Agregación actual:

 const project = await collection.aggregate([ { $match: { projectId: id } }, { $group: { _id: '$projectId', status: { $last: '$status' }, data: { $last: '$data' } } } ]).toArray();
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede usar $facet y realizar múltiples consultas en paralelo en el mismo conjunto de documentos.

 db.collection.aggregate([ { $facet: { last_status: [ { "$match": { status: { $ne: null } } }, { "$sort": { _id: -1 } }, { "$limit": 1 } ], last_data: [ { "$match": { data: { $ne: null } } }, { "$sort": { _id: -1 } }, { "$limit": 1 } ] } }, { "$project": { other_fields: { $first: "$last_data" }, status: { $first: "$last_status.status" } } } ])

ejemplo de trabajo

about 4 years ago · Juan Pablo Isaza 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!