मुख्य समस्या यह है कि आपको पूरे संग्रह के माध्यम से जाने की जरूरत है (इस स्थिति में आप प्रक्रिया को गति देने के लिए अनुक्रमणिका का उपयोग नहीं कर सकते हैं)।
आप इस कोड को आजमा सकते हैं (इसका संचालन आपकी तुलना में कम है):
db.getCollection('User').aggregate([
{
$unwind: "$UserSubscriptions"
},
{
$group: {
_id:"$UserSubscriptions.Subscription.Publication.Code",
users: {$addToSet: "$_id"}
}
},
{
$project: {"PublicationCode": "$_id", "Count": {$size: "$users"}}
}
])