2 Stimmen

MongoDB-Sammlungen

Ich bin gerade dabei, eine App zu entwickeln, die Tweets, Facebook-Status und Facebook-Fotos für einen Nutzer sammelt. Derzeit legt der Nutzer genau fest, wann und zu welchem Zeitpunkt er diese Daten abrufen möchte, und ein Spider zieht die Daten während dieses Zeitraums ab. Das "wann" und "bis" wird in einer MySQL-Datenbank gespeichert, und mein Plan war, alle Tweets, Status- und Foto-Metadaten in MongoDB zu speichern (mit den eigentlichen Bildern in S3).

Ich dachte, ich würde einfach eine Sammlung für jeden der Zeiträume erstellen, die der Benutzer sammeln möchte, und dann alle Tweets usw. aus diesem Zeitraum in dieser speziellen Sammlung speichern.

Scheint dies ein vernünftiger Ansatz zu sein?

4voto

Gates VP Punkte 44457

Scheint dies ein vernünftiger Ansatz zu sein?

Was ist die Nr. 1 der Nutzeranfragen? Ist es "Aktivität nach Zeitraum finden" ? Wenn die Benutzer immer nur nach dem Zeitraum suchen wollen, ist dies sinnvoll.

Wenn die Benutzer jedoch eine kumulierte Ansicht wünschen, müssen Sie jetzt den Verlauf für einen Benutzer sammeln und für die Anzeige zusammenführen.

Wenn Sie sowohl ein "bis zu diesem Zeitraum" als auch ein "kumuliert" wollen, dann schlage ich vor, einfach alle Daten in ein einziges Benutzerobjekt zu packen. Es ist einfach, die einzelnen Aktionen mit einem "Erntelauf" und einem "Zeitstempel" zu versehen.

Mongo Details : MongoDB kann einzelne Dokumente bis zu einer Größe von etwa 4 MB verarbeiten. Die meisten neueren Versionen erhöhen diese Größe auf 8 oder 16 MB. Wenn Sie diesen Speicherplatz nur für Text verwenden, sollten Sie sich darüber im Klaren sein, dass dies eine Menge Text ist. Eine Kopie von Krieg & Frieden ist knapp über 3 MB groß. Das sind also Hunderte von Textseiten auf 4 MB. Mit 8 oder 16 MB können Sie wahrscheinlich jahrelang Status-Updates und Tweets der meisten Leute speichern.

Beachten Sie, dass MongoDB über GridFS zum Speichern von Binärdaten (wie Bilddateien) verfügt, so dass Sie in der Regel nur Zeiger auf diese im Benutzerdokument speichern werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X