आप कोशिश कर सकते हैं,
$group
userId
. द्वारा औरtotalSeen
get प्राप्त करें$cond
. का उपयोग करके गिनें अगरstatus
seen
. है ,$sum
. का उपयोग करके अधिसूचना की कुल संख्या प्राप्त करें ,$project
आवश्यक फ़ील्ड दिखाने के लिए, और$divide
. का उपयोग करके प्रतिशत की गणना करें और$multiply
db.collection.aggregate([
{
$group: {
_id: "$userId",
totalSeen: {
$sum: { $cond: [{ $eq: ["$status", "seen"] }, 1, 0] }
},
total: { $sum: 1 }
}
},
{
$project: {
_id: 0,
userId: "$_id",
notificationPercentage: {
$multiply: [{ $divide: ["$totalSeen", "$total"] }, 100]
}
}
}
])