Personnellement, j'irais avec une collection séparée, principalement dans le but de garder vos objets utilisateur/lieu petits, puisque vous pouvez avoir un nombre illimité de checkins par utilisateur/lieu. Si vous placez un index sur user_id/timestampl et place_id/timestamp dans votre collection checkins, les requêtes pour un utilisateur ou un lieu particulier seront efficaces. Un deuxième avantage de l'utilisation d'une collection distincte est que MongoDB n'aura pas à déplacer votre utilisateur ou à placer un objet lorsqu'il devient trop volumineux. Au lieu de cela, il continuera simplement à ajouter à la collection checkins, ce qui devrait être assez efficace (10 s sur des milliers d'insertions par seconde et par fragment).
Je dois également mentionner que je ne le ferais pas stockez les identifiants d'archivage dans le lieu ou dans le document utilisateur, car vous bénéficiez des mêmes performances en ayant un index sur place_id ou user_id dans le document d'archivage.