Com base em seus dados de exemplo para o aplicativo de mensagens, o que você pode fazer é ter duas coleções:Conversation e Messages.Where the relationship is one Conversation have many Messages.
Conversation:
{ id: 123
participants: ['john', 'marry'],
}
Message:
{ sender: 'john',
content: 'howdy',
time_created: new Date(),
converstationId: 123
},
{ sender: 'marry',
content: 'good u',
time_created: new Date(),
converstationId: 123
},
Criar uma nova mensagem de documento seria melhor neste caso, pois você pode ter dois aplicativos (1 para john e 1 para casar) sem lidar com a possibilidade de os dois atualizarem o mesmo documento. sessão de conversa.
Além disso, se uma conversa for um único documento, você pode acabar com um documento muito grande. (Preocupação com o crescimento do documento)
Você pode descobrir mais sobre modelagem de dados para este documento mongodb
http://docs.mongodb.org/manual/core/data-modeling-introduction/
Veja também MongoDB:Socialite para exemplos/discussão de caso de uso de rede social.
Espero que ajude. Cheers.