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

144
Visualizações
Mongo db Aggregate - $ sum para agregar valores si entre fechas

Estoy buscando escribir una consulta para agregar la cantidad según las fechas.

Tengo documentos que se ven así:

 { "_id" : 1234, "itemNumber" : "item 1", "date" : ISODate("2021-10-26T21:00:00Z"), "quantity" : 1, "__v" : 0 }

Y una consulta como esta:

 //monogoose myCollection.aggregate().group({ _id: '$itemNumber', ninetyDays: { $sum: { $and: { $gte: ["date", dayjs().subtract(90, 'd').toDate()], $lt: ["date", dayjs().toDate()] } } } })

En la consulta anterior ninetyDays siempre es 0.

Básicamente, estoy buscando obtener la suma de la cantidad dada un rango de fechas.

La ayuda es muy apreciada.

Gracias

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar $cond para sumar 1 o 0 si su condición coincide.

Suponiendo que su expresión de fecha sea correcta, esto debería funcionar, pero no falsifique $ en la date .

 db.collection.aggregate([ { "$group": { "_id": "$itemNumber", "ninetyDays": { "$sum": { "$cond": { "if": { "$and": [ $gte: ["$date", dayjs().subtract(90, 'd').toDate()], $lt: ["$date", dayjs().toDate()] ] }, "then": 1, "else": 0 } } } } } ])

Ejemplo aquí donde he usado mongo $$NOW pero si su fecha funciona, es más fácil usar su código.

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