sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB:bästa designen för meddelandeapp

Baserat på dina exempeldata för meddelandeappen, vad du kan göra är att ha två samlingar:Konversation och Meddelanden. Där relationen är en Konversation har många meddelanden.

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

Att skapa ett nytt dokumentmeddelande skulle vara bättre i det här fallet, eftersom du då kan ha två ansökningar (1 för john och 1 för marry) utan att hantera möjligheten att de två uppdaterar samma dokument. De råkar bara dela samma sak. konversationssession.

Dessutom, om en konversation är ett enda dokument, kan du sluta med ett mycket stort dokument. (Dokumenttillväxtproblem)

Du kan ta reda på mer om datamodellering för detta mongodb-dokument

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

Se även MongoDB:Socialite för exempel/diskussion för användning av sociala nätverk.

Hoppas det hjälper. Skål.




  1. Genomsnittligt ett underdokumentfält över dokument i Mongo

  2. SQL COALESCE() Förklarat

  3. Kan någon förklara redis setbit-kommando?

  4. mongodb hur man får maxvärde från samlingar