Sulla base dei tuoi dati di esempio per l'app di messaggistica, ciò che potresti fare è avere due raccolte:Conversazione e Messaggi. Dove la relazione è una Conversazione ha molti messaggi.
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
},
In questo caso sarebbe meglio creare un nuovo messaggio di documento, poiché puoi quindi avere due applicazioni (1 per john e 1 per sposarsi) senza gestire la possibilità che i due aggiornino lo stesso documento. Si dà il caso che condividano lo stesso sessione di conversazione.
Inoltre, se una conversazione è un singolo documento, potresti ritrovarti con un documento molto grande. (Preoccupazione per la crescita dei documenti)
Puoi trovare ulteriori informazioni sulla modellazione dei dati per questo documento mongodb
http://docs.mongodb.org/manual/core/data-modeling-introduction/
Vedi anche MongoDB:Socialite per esempi/discussione per casi d'uso di social network.
Spero che ti aiuti. Saluti.