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

146
Vistas
¿Cómo recorrer el valor de un campo uno tras otro y realizar operaciones de agregación en él?

Recientemente comencé a trabajar con MongoDB y su tubería de agregación. Necesito ayuda para recorrer el campo llamado Id y realizar una operación de agregación en él, uno tras otro, directamente dentro de la canalización.

Actualmente estoy haciendo algo como esto (en Node.js):

 let patients = await client.db('MyDB').collection('Patients_MA').find().toArray(); let patientColl = client.db('MyDB').collection('Patients_MA'); for (int i=0; i<patients.length; i++) { doc = patientColl.aggregate([ { $match: {Id: patients[i].Id} }, { $project: { _id: 0, num: { $add: [ {$multiply: [0.7, 2]}, {$multiply: [0.2, 2]}, {$multiply: [0.15, 0]} ] } } } ]); await patientColl.updateOne( { "Id": id }, { "$set": {'heuristic': num} } ); }

En aras de una fácil comprensión, he condensado la canalización en lo principal que quiero que haga, que es actualizar el valor heuristic , pero en mi canalización original, cada Id tendrá un valor heuristic diferente. Además, tengo aproximadamente 8000 Id. de pacientes y en mi tubería original, estoy trabajando con 3 colecciones diferentes.

Entonces, mi pregunta es, ¿hay alguna manera de recorrer cada Id , ejecutar la canalización anterior y actualizar el valor heuristic directamente dentro de la canalización de agregación? ¿O una forma de hacer esto de manera más eficiente sin tener que hacer llamadas O(8000)?

Editar: Aquí está el enlace a la canalización original.

about 4 years ago · Juan Pablo Isaza
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