2016-12-28 2 views
1

Ich habe eine Client-Server-Anwendung und ich plante, die Ablaufverfolgung zu speichern und mongodb anmelden. Meine anfängliche Idee ist es, ein Dokument pro Benutzersitzung mit den allgemeinen Kundendaten (Sitzung, IP-Adresse, Benutzer-ID, dateCreated usw.) und einem Array für jeden Logging-Eintrag für diesen Benutzer in dieser Sitzung zu erstellen. Aber ich lese das ist keine gute Praxis, große Arrays auf mongodb http://www.askasya.com/post/largeembeddedarrays/ in meinem Fall zu haben, könnte das Client-Sitzungsprotokoll-Array für Tausende von Einträgen gehen.mongodb Struktur für die Protokollierung?

Auf der anderen Seite scheint die Duplizierung der allgemeinen Parameter für jeden Protokolleintrag eine Platzverschwendung zu sein.

Antwort

0

Am Ende habe ich ein Dokument erstellt, um alle Clientsitzungsdaten mit einer ID und einem neuen Dokument pro Protokolleintrag mit einer Eigenschaft zu speichern, die dieses Dokument nach der ID verweist. Auch wenn normalerweise Beziehungsdaten nicht auf mongodb verwendet werden sollten, ist es für die Protokollierung meiner Meinung nach kein Problem, eine zweite Abfrage durchzuführen, um die Sitzungsdaten der Benutzer zu erhalten, anstatt die Daten in jedem Protokoll zu duplizieren oder alle Protokolleinträge als großes Array hinzuzufügen.

Verwandte Themen