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

111
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 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