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

190
Vistas
El operador MongoDb no funciona para la matriz de propiedades del objeto

Tengo un problema con la consulta de MongoDB . Nuestra colección se llama products y los datos se colocan de esta manera.

 { "_id":"61b823681975ba537915cb0c", "salesInfo":{ "_id":"61b823681975ba537915c23c", "salesDate":[ { "_id":"61b3aa4a7b04b30cd0a76b06", "salesQuantity":100, "soldPieces":36, "holdPieces":0 }, { "_id":"61b3aa4a7b04b30cd0a75506", "salesQuantity":100, "soldPieces":36, "holdPieces":0 } ] } }

Quiero agregar un nuevo field llamado percentageSold vendido dentro de una matriz de objetos, y el valor debe ser el cálculo de la siguiente fórmula ((soldPieces + holdPieces) / salesQuantity * 100) .

Mi consulta es esta, pero devuelve null para la propiedad percentageSold .

 db.products.aggregate( [ { $addFields: { "salesInfo.salesDate.percentageSold": {$divide: [{$add: ["$salesDate.soldPieces", "$salesDate.holdPieces"]}, {$multiply: ["$salesDate.salesQuantity", 100]}]} } } ])
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Como salesInfo.salesDate es un campo de matriz, debe usar un operador de matriz como $map para realizar una operación por elementos.

 db.products.aggregate([ { $addFields: { "salesInfo.salesDate": { "$map": { "input": "$salesInfo.salesDate", "as": "s", "in": { "_id": "$$s._id", "salesQuantity": "$$s.salesQuantity", "soldPieces": "$$s.soldPieces", "holdPieces": "$$s.holdPieces", "percentageSold": { $divide: [ { $add: [ "$$s.soldPieces", "$$s.holdPieces" ] }, { $multiply: [ "$$s.salesQuantity", 100 ] } ] } } } } } } ])

Aquí está el parque infantil de Mongo para su referencia.

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