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

118
Views
MongoDB obtiene el último conjunto actualizado de documentos de cada categoría

Tengo esta estructura de documento:

 { ..., insertionDate: 'someDate', product: 'cool jacket', color: 'red', store: 'north store', }

La cuestión es que esta colección almacena todos los cambios que ha tenido un producto. En este momento tengo el siguiente código para recuperar todos los productos de una tienda con un color de un conjunto previamente definido.

 const colors = ['red', 'blue', 'orange']; collection.find({$and: [{store: store)}, {color: {$in: colors}}]});

El problema es que obtengo todos los datos históricos, por ejemplo, puedo obtener 'chaqueta genial' en cada color 4 veces, porque aparece varias veces en la base de datos con diferente fecha de inserción.

¿Cómo obtengo la última fecha de inserción de cada producto?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Aquí hay un código probado:

 await Collection.aggregate([ { $match: { color: { $in: colors } } }, { $sort: { insersionDate: -1 } }, { $group: { _id: '$product', doc: { $first: '$$ROOT' } } } ]);
about 4 years ago · Juan Pablo Isaza Report

0

Puede lograr esto mediante una consulta agregada con tres canalizaciones.

  1. $match para que coincida con la tienda y los colores deseados.

  2. Utilice $sort para ordenar por orden de descripción de fecha de insertionDate .

  3. $group para agrupar por nombre de producto o ID de producto. Mientras que agrupar el $first acumulador ayudará a obtener el producto insertado recientemente.

about 4 years ago · Juan Pablo Isaza Report

0

Puede usar collection.find({$and: [{store: store)}, {color: {$in: colors}}]}).sort(insertionDate: -1) los ordenará según la última fecha insertada.

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!