MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB:miglior design per l'app di messaggistica

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.