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

295
Vistas
Suma de los valores en dictados anidados, excluyendo algunos basados en otra clave en la base de datos MongoDB

Tengo una base de datos MongoDB con el siguiente formato:

 { "_id": xxx, "timestamp": "1643649900000", "scores": [{ "name": "APPL", "price": 80 }, { "name": "GOOGL", "price": 83, }, { "name": "COMPI", "price": 76, }, { "name": "and more names which also can change in the following documents", "price": 76, }] }, { "_id": yyy, "time": "1644350400000", "scores": [{ "name": "STCMP", "price": 33 }, { "name": "APPL", "price": 95, }, { "name": "GOOGL", "price": 83, }, { "name": "MINN", "price": 76, }] },

Necesito sumar todos los precios por vez pero excluyendo (o restando de la suma) algunos.

Mi lista de puntajes tiene alrededor de 200 dictados y quiero excluir alrededor de 5 de ellos. Solo logré hacer la parte de suma, pero después de dos días de búsqueda todavía no puedo excluir con mi conocimiento limitado.

 toBeExcluded = ["APPL", "GOOGL"]
 sums.aggregate([ { "$unwind" : "$scores" }, { "$group": { "_id": "$time", "total": { "$sum": "$scores.price" } } }, { "$addFields":{ "timeAdj": {"$toInt": [{"$subtract":[{"$divide": ["$_id", 1000]}, 300]}]} } }, { "$sort": {"timeAdj":1} } ]))
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

use $cond y verifique los nombres que se excluirán usando $in , en su $sum :

parque infantil mongo

 db.collection.aggregate([ { "$unwind": "$scores" }, { "$group": { "_id": "$time", "total": { "$sum": { "$cond": [ { "$in": [ "$scores.name", [ "APPL", "GOOGL" ] ] }, 0, "$scores.price" ], } } } }, ])
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