Widzę, że to pytanie jest stare, ale dla wszystkich zainteresowanych zadano podobne pytanie i jedna odpowiedź wygląda na wykonalną https://stackoverflow.com/a/30830429/132610
Conversation : {
id: 123,
members: [ user_id1, user_id2 ]
}
Message { conversationId: 123, author: user_2, body: 'Hi what's up' }
Message { conversationId: 123, author: user_1, body: 'Whanna ask some question on stackoverflow' }
Aktualizacja nr 1
1) Skalowalność:MongoDB dobrze się skaluje przy bardzo dużej kolekcji. Miliardy wiadomości na kolekcję. Istnieje technika zwana shardingiem, która pozwala podzielić większą kolekcję na wiele węzłów.
2) Czytanie. Ponieważ MongoDB posiada mechanizmy indeksowania, odczyty są porównywalne z każdym precyzyjnie dostrojonym silnikiem bazy danych. Więc czytanie nie będzie problemem. Zwłaszcza, gdy rozmowa (grupa | pokój) ma mniej uczestników, na przykład dwie osoby komunikują się ze sobą.