MongoDB-Schema-Design - Echtzeit-Chat

Fange ich ein Projekt, von dem ich glaube, dass Sie besonders gut geeignet, um MongoDB aufgrund der Geschwindigkeit und Skalierbarkeit, die es gewährt.

Dem Modul bin ich derzeit daran interessiert ist, zu tun, Echtzeit-chat. Wenn ich dies in einem traditionellen RDBMS-ich würde es teilen, in:

  • Kanal (Ein Kanal hat viele Benutzer)
  • Benutzer (Ein Benutzer hat einen Kanal aber viele Nachrichten)
  • Nachricht (Eine Nachricht eines Benutzers)

Den Zweck dieser use-case ist, würde ich gerne davon ausgehen, dass es in der Regel 5 Kanäle gleichzeitig aktiv, mit jeweils maximal 5 Nachrichten pro Sekunde.

Spezifische Abfragen, die müssen schnell sein:

  • Abrufen neuer Nachrichten (basierend auf einem Lesezeichen, Zeitstempel vielleicht, oder einem inkrementierenden Zähler?)
  • Post eine Nachricht an einen Kanal
  • Überprüfen, die ein Benutzer kann die post in einem Kanal

Bedenkt, dass das Dokument limit mit MongoDB von 4mb, wie würden Sie gehen über das entwerfen des Schemas? Was würde deins Aussehen? Gibt es irgendwelche Fallstricke, die ich achten sollten?

InformationsquelleAutor der Frage Nick | 2010-05-29

Schreibe einen Kommentar