Hallo zusammen,
ich habe aktuell ein Datenmodell das in etwas diesem entspricht:
Wenn ich nun ein "Raw" immer weiter hinzufüge kommt es durchaus vor, dass ich die Dokument Größe von MongoDB überschreite.
Was wäre der richtige Ansatz das Problem zu lösen?
Meine "raw" Dateien sind wirklich nur viel Text.
Ich könnte diese z.B. zip komprimieren und ein binär attriubt aus "raw" machen und drauf hoffen, dass es niemals so viele Versionen gibt, dass sie selbst gezippt zusammen mehr als 16MB erreichen.
Mann könnte auch mit mapped Document arbeiten über die @DBRef Annotation und ein Limit für das Raw - Attribut setzten, sodass man die 16MB als eigenes Dokument nicht überschreiten kann oder man limitiert die Anzahl der möglichen Versionen und nimmt keine neuen Versionen mehr an.
Aber das klingt in meinen Ohren so als würde man da, dann eine relationale Datenbank aufbauen wollen.
Ich selber würde, wenn möglich ein Verfahren wählen, indem alle Versionen gespeichert werden um Datenverlust zu vermeiden.
Komme aber auf keine Lösung die den beiden oben genannten nicht ähnelt.
Wie seht ihr das? Wie kann ich das Problem am besten beheben? Doch mit MappedDocuments arbeiten - oder sie lieber embedded lassen? Zippen?
LG
ich habe aktuell ein Datenmodell das in etwas diesem entspricht:
Code:
{
uuid: "lsdkh2408sldkj",
version: 4,
raws[
{
version: 1,
raw: "some big big text"
},
{
version: 2,
raw: "some changed big text"
},
{
version: 3,
raw: "some corrected big text"
},
{
version: 4,
raw: "some big big text and so on"
}
]
}
Wenn ich nun ein "Raw" immer weiter hinzufüge kommt es durchaus vor, dass ich die Dokument Größe von MongoDB überschreite.
Was wäre der richtige Ansatz das Problem zu lösen?
Meine "raw" Dateien sind wirklich nur viel Text.
Ich könnte diese z.B. zip komprimieren und ein binär attriubt aus "raw" machen und drauf hoffen, dass es niemals so viele Versionen gibt, dass sie selbst gezippt zusammen mehr als 16MB erreichen.
Mann könnte auch mit mapped Document arbeiten über die @DBRef Annotation und ein Limit für das Raw - Attribut setzten, sodass man die 16MB als eigenes Dokument nicht überschreiten kann oder man limitiert die Anzahl der möglichen Versionen und nimmt keine neuen Versionen mehr an.
Aber das klingt in meinen Ohren so als würde man da, dann eine relationale Datenbank aufbauen wollen.
Ich selber würde, wenn möglich ein Verfahren wählen, indem alle Versionen gespeichert werden um Datenverlust zu vermeiden.
Komme aber auf keine Lösung die den beiden oben genannten nicht ähnelt.
Wie seht ihr das? Wie kann ich das Problem am besten beheben? Doch mit MappedDocuments arbeiten - oder sie lieber embedded lassen? Zippen?
LG