Si votre tableau sharedBy peut contenir des millions d'entrées, je vous suggère de changer la façon dont vous suivez « partagé ». Ajoutez un tableau, sharedPostIds, à l'objet utilisateur qui contient une liste de toutes les publications que l'utilisateur a partagées.
Pour comparer les chiffres, si un utilisateur expérimenté partage 10 publications par jour, cela représenterait 3650 entrées / an. Probablement pas assez pour le remarquer lors de l'envoi au client.
Si vous devez vous assurer que les données ne sont pas envoyées au client, vous pouvez créer une méthode Meteor qui effectue des recherches par lots de manière asynchrone.