Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

119
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda