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

212
Vistas
Agregación de Mongodb - min pero no cero

Tengo una colección con campo de matriz:

 {[ name:String buyPrice:Int sellPrice:Int ]}

Estoy tratando de encontrar el precio mínimo y máximo de compra/venta. En algunas entradas, el precio de compra o venta es cero, por lo que necesito encontrar el precio mínimo pero mayor que cero. Aquí está mi consulta:

 { name: '$_id', maxBuyPrice: { $max: '$commodities.buyPrice' }, minBuyPrice: { $min: '$commodities.buyPrice' }, maxSellPrice: { $max: '$commodities.sellPrice' }, minSellPrice: { $min: '$commodities.sellPrice' } }

No puedo usar el operador $match con $gt porque puedo perder entradas con valores máximos

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  • $filter para iterar el ciclo de commodities.buyPrice array y obtener un precio filtrado mayor que 0
  • aplicar $min en el resultado filtrado anterior
  • $ifNull para verificar si el resultado anterior $min es nulo y luego devolver solo 0
 { $project: { name: "$_id", maxBuyPrice: { $max: "$commodities.buyPrice" }, minBuyPrice: { $ifNull: [ { $min: { $filter: { input: "$commodities.buyPrice", cond: { $gt: ["$$this", 0] } } } }, 0 ] }, maxSellPrice: { $max: "$commodities.sellPrice" }, minSellPrice: { $ifNull: [ { $min: { $filter: { input: "$commodities.sellPrice", cond: { $gt: ["$$this", 0] } } } }, 0 ] } } }

Patio de recreo

over 4 years ago · Santiago Trujillo 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