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 }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.