I am trying to do some de-normalization before growing my MongoDB too much. Currently I have a Users and a Rooms collection. Users can join Rooms and Rooms hold Users. Users can approach millions over time, and Rooms probably will grow to the thousands. Rooms can have thousands of Users. Should I store the full User documents in each Room document or just the ObjectID? Or should I store the Room document's ObjectID in an array under each User document? I know Joins are frowned upon, but these will grow at an incredible rate. I also need to do complex calculations over all the Users in a Room. The relationship is Many-to-Many. Currently I am going to store an array for each Room with the ObjectIDs of each User. I am also going to store an array for each User with the ObjectIDs of each Room they are in. Does this make sense?
Should I do Object embedding or should I do Object references for my situation?