Wir verwenden mongodb mit c#. Wir versuchen herauszufinden, wie wir unsere Sammlung nahtlos konsistent halten können. Im Moment muss ein Entwickler, wenn er Änderungen an der Klassenstruktur vornimmt (ein Feld hinzufügt oder den Datentyp ändert oder die Eigenschaft innerhalb einer verschachtelten Klasse ändert), die Mongo-Sammlung manuell ändern.
Es ist schmerzhaft, da unser Projekt wächst und die Entwickler, die an dem Projekt arbeiten, immer mehr werden. Ich frage mich, ob jemand bereits einen Weg gefunden hat, mit diesem Problem umzugehen.
- Forschung
- Ich habe eine ähnliche Frage gefunden, aber keine Lösung gefunden.
- Ich habe einen Weg gefunden, um alle Eigenschaften zu finden Eigenschaften finden; jedoch werden Datentypen und verschachtelte Dokumente zu einem Problem.
0 Stimmen
Nicht sicher, ob ich verstehe: Dokumente in einer MongoDB-Sammlung können unterschiedlich sein, daher hindert dich nichts daran, neue Dokumente in eine bestehende Sammlung zu drücken, auch wenn die neuen Dokumente auf Instanzen aktualisierter Klassen basieren. Oder ist das Problem, dass du vorhandene Dokumente in der Datenbank patchen möchtest? Noch eine Sache: Liegt das Problem am Entwicklungssystem oder am Produktionssystem?
3 Stimmen
@ChristianHorsdal: Du hast recht. Es hindert uns nichts daran, neue Dokumente einzufügen. Wenn wir die Dokumente jedoch abrufen, wird der Serialisierer eine Ausnahme auslösen. Es gibt jedoch eine Lösung, wenn wir angeben, zusätzliche Elemente zu ignorieren oder zusätzliche Elemente in einem anderen BSON-Dokument zu sammeln. Dies kann im BSON-Serialisierer gemacht werden. Aber wir haben nach einem Art vorab erstellten Skript gesucht, das den Entwickler benachrichtigt, um die Änderungen vorzunehmen.