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

139
Vistas
Convertir JavaScript a agregación mongoDB

Estoy buscando cómo convertir este código en agregación de MongoDB. supongamos que tengo este servicio que contará la cantidad de juegos 'Fixtures' en cada deporte donde el juego comenzará pronto. Tengo dos modelos Fixture que significa el juego y Sport que será el deporte, cada Fixture tiene la identificación del deporte que nosotros pueden agruparse durante la agregación. Aquí hay un ejemplo de trabajo

 export const countFixtures = async () => { const sports = await Sports.find(); const countFixturesBySport = []; for (let index = 0; index < sports.length; index++) { const sport = sports[index]; const countFixtures = await Fixture.countDocuments({ Sport: sport._id, StartDate: { $gt: new Date() }, }); countFixturesBySport.push({ sport: sport.Name, sportId: sport._id, fixturesCount: countFixtures, }); } return countFixturesBySport; };

Empecé con este código en mongoDB:

 await Sports.aggregate([ { $lookup: { from: 'fixture', let: { fixture: '$fixture' }, pipeline: [ { $match: { $expr: { $eq: ['$_id', '$$fixture'] } }, },{ $project: {$addFields: { sport:'Name', sportId:'_id', countFixture:'' }} ])
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Aquí tienes, estabas en el camino correcto usando $lookup , solo necesitabas algunos ajustes menores en la lógica real.

 db.sports.aggregate([ { $lookup: { from: "fixture", let: { sportId: "$_id" }, pipeline: [ { $match: { $expr: { $eq: [ "$Sport", "$$sportId" ] } } }, { $project: { _id: 1 } } ], as: "matchedFixtures" } }, { $project: { _id: 0, sport: "$Name", sportId: "$_id", fixturesCount: { $size: "$matchedFixtures" } } } ])
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