Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

130
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!