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

137
Vistas
¿Cómo group_by en mongoDb con los resultados de salida?

A continuación se muestra mi código ..

 group = { $group: { "_id": { "user_email": "$user_email", "sender_email": "$sender_email" }, "count": { "$sum": 1 } } }; Schema.aggregate(([group]),function(errors,results){ console.log(results); });

mi valor de salida es:

 [ { _id: { user_email: '123@gmail.com', sender_email: '235@gmail.com' }, count: 5 }, { _id: { user_email: '123m@gmail.com', sender_email: '235@gmail.com' }, count: 16 }, { _id: { user_email: '455@gmail.com', sender_email: '785@gmail.com' }, count: 8 }, { _id: { user_email: '123@gmail.com', sender_email: '235@gmail.com' }, count: 4 } ]

El registro anterior muestra el conteo de llamadas individuales. Necesito saber cuántos user_email han presionado sender_email (un user_email puede presionar un sender_email muchas veces, pero si un user_email presionó a sender_email muchas veces, no necesito que el conteo como 'muchos' pero necesito el conteo como 1, de la misma manera si varios usuarios han ingresado a sender_email, no quiero el conteo de cuántas veces cada usuario ha ingresado a sender_email sino cuántos user_email ha ingresado a sender_email). ¿Necesito una consulta mongoDb para ello?

 { user_email: '123@gmail.com', sender_email: '235@gmail.com' }, count: 5 }

123@gmail.com tocó 235@gmail.com 5 veces, pero necesito saber cuántos sender_email individuales han sido tocados por varios user_email sin pasar ningún parámetro.

A continuación se muestra mi colección:

 { "_id" : ObjectId("590182b3168e590182b315b2"), "updatedAt" : ISODate("2017-04-27T12:37:03.385Z"), "createdAt" : ISODate("2017-04-27T05:33:39.563Z"), "user_email" : "123@gmail.com", "sender_email" : "235@gmail.com", "status" : 1, "__v" : 0 } { "_id" : ObjectId("590182c4a182c4aaa2d21"), "updatedAt" : ISODate("2017-04-27T12:37:03.385Z"), "createdAt" : ISODate("2017-04-27T05:33:56.122Z"), "user_email" : "123@gmail.com", "sender_email" : "235@gmail.com", "status" : 1, "__v" : 0 } { "_id" : ObjectId("590184182c4a1821d98a028"), "updatedAt" : ISODate("2017-04-27T12:37:03.385Z"), "createdAt" : ISODate("2017-04-27T05:39:40.425Z"), "user_email" : "561@gmail.com", "sender_email" : "235@gmail.com", "status" : 1, "__v" : 0 }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

group = { $group: { "_id": { "user_email": "$user_email", "sender_email": "$sender_email" }, "_id": { "sender_email": "$sender_email" }, "count": { "$sum": 1 } } };

Mi salida:

 [ { _id: { sender_email: '123@gmail.com' }, count: 1 }, { _id: { sender_email: '345@gmail.com' }, count: 4 } ]

Cambié mi consulta y obtuve el resultado requerido.

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