Hi Co0kei, Thank you for the clarification, I think I now understand what you are aiming at. Yes, the second model seems reasonable in that case. I think the most common query will be individual wanting to know ranking within their guild so sorting result when retrieving could achieve that but I’d suggest that for longer time intervals of time (last: 7 day, 30 day, 365 day) you calculate it once a day using crontab and store in separate collection rather than calculate it from all the data on each read.
I wouldn’t worry about updating multiple collections or several updates at same time too much, just make model logical enough to get information you want read with least cost of query and data transfer.
Best,
Max