Hovedproblemet er, at du skal gennemgå hele samlingen (i denne situation kan du ikke bruge indekserne til at fremskynde processen).
Du kan prøve denne kode (den har mindre funktion end din):
db.getCollection('User').aggregate([
{
$unwind: "$UserSubscriptions"
},
{
$group: {
_id:"$UserSubscriptions.Subscription.Publication.Code",
users: {$addToSet: "$_id"}
}
},
{
$project: {"PublicationCode": "$_id", "Count": {$size: "$users"}}
}
])