MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB:bestes Design für Messaging-Apps

Basierend auf Ihren Beispieldaten für die Messaging-App könnten Sie zwei Sammlungen haben:Konversation und Nachrichten. Wo die Beziehung eine Konversation ist, haben viele Nachrichten.

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 
},

Das Erstellen einer neuen Dokumentnachricht wäre in diesem Fall besser, da Sie dann zwei Bewerbungen haben können (1 für John und 1 für Heiraten), ohne die Möglichkeit berücksichtigen zu müssen, dass die beiden dasselbe Dokument aktualisieren. Sie teilen sich zufällig dasselbe Gesprächsrunde.

Wenn es sich bei einer Konversation um ein einzelnes Dokument handelt, erhalten Sie möglicherweise ein sehr großes Dokument. (Wachstumsbedenken dokumentieren)

Weitere Informationen zur Datenmodellierung finden Sie in diesem Mongodb-Dokument

http://docs.mongodb.org/manual/core/data-modeling-introduction/

Siehe auch MongoDB:Socialite für Beispiele/Diskussionen für Anwendungsfälle in sozialen Netzwerken.

Hoffe es hilft.Prost.