Op basis van uw voorbeeldgegevens voor de berichten-app, zou u twee verzamelingen kunnen hebben:conversatie en berichten. Waar de relatie één is, heeft conversatie veel berichten.
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
},
Het maken van een nieuw documentbericht zou in dit geval beter zijn, omdat u dan twee toepassingen kunt hebben (1 voor john en 1 voor trouwen) zonder de mogelijkheid aan te pakken dat ze hetzelfde document bijwerken. Ze delen toevallig hetzelfde gesprek sessie.
Als een gesprek een enkel document is, kan het ook zijn dat u een heel groot document krijgt. (Bezorgdheid over documentgroei)
U kunt meer te weten komen over gegevensmodellering voor dit mongodb-document
http://docs.mongodb.org/manual/core/data-modeling-introduction/
Zie ook MongoDB:Socialite voor voorbeelden/discussie voor gebruik van sociale netwerken.
Ik hoop dat het helpt. Proost.