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

492
Vistas
¿Cómo determinar los objetos de intersección en la matriz json con javascript?

Tengo datos json como este:

 [{ "Id": 1, "Name": "Test 1", "Time": { "start": "22:00", "end": "22:30", "duration": 30 } }, { "Id": 2, "Name": "Test 2", "Time": { "start": "22:05", "end": "22:35", "duration": 30 } }, { "Id": 3, "Name": "Test 3", "Time": { "start": "23:25", "end": "23:40", "duration": 15 } },{ "Id": 4, "Name": "Test 4", "Time": { "start": "22:15", "end": "22:50", "duration": 15 } } ]

Y quiero obtener un resultado como este, determinar qué se cruzan por Time :

 [ ["Test 1", "Test 2", "Test 4"], ["Test 3"] ]

Tengo una solución, pero es demasiado complicada y uso 4 bucles uno dentro del otro.

Si hay una solución más fácil, sugiérala, ¡gracias!

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

0

Pruebe la agregación, no estoy seguro de que esto funcione exactamente según sus requisitos,

  • $addFields agrega un nuevo campo startHour , que divide la cadena hora y minuto de la cadena, usando $split , y $arrayElemAt devuelve el primer elemento que significa hora
  • $group por startHour y hacer una matriz de Name
 db.collection.aggregate([ { $addFields: { startHour: { $arrayElemAt: [{ $split: ["$Time.start", ":"] }, 0] } } }, { $group: { _id: "$startHour", Name: { $push: "$Name" } } } ])

Patio de recreo

Resultado:

 [ { "Name": ["Test 1","Test 2","Test 4"], "_id": "22" }, { "Name": ["Test 3"], "_id": "23" } ]
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