Ich arbeite mit RavenDB in C# und habe ein neues Feld zu einem bestehenden Modell hinzugefügt. Ich bin mit diesem command`RavenDB patchen, wenn das Feld bereits existiert
PatchCommandType.Set
`das neue Feld zu bestehenden Dokumenten hinzuzufügen.
Wenn dieser Patch-Befehl auf Dokumenten ausgeführt wird, die bereits über dieses spezifische Feld verfügen, überschreibt der Befehl patch das vorhandene Feld/den vorhandenen Wert oder erstellt er ein doppeltes Feld mit demselben Namen?
Ich möchte diesen Patch-Befehlscode im Verlauf der Entwicklung beibehalten und sicherstellen, dass die Datenbank nicht beschädigt wird.
store.DatabaseCommands.UpdateByIndex("Index",
new IndexQuery{
Query = "Model:"
},
new []{
new PatchRequest{
Type = PatchCommandType.Set,
Name = "IsArchived",
Value = true
},
}
);
Okay, also habe ich eine Dokumentation nachgeschaut und gesehen, dass es eine add-Methode gibt und ich frage mich, ob das nur das Feld hinzufügen würde, wenn es nicht existierte. Das ganze Dokumentationsbeispiel sagt "add new property". –
Hinzufügen ist dort, um ein Element zu einem Array hinzuzufügen. Siehe die XML-Kommentare hier: https://github.com/ayendegraveb/blob/v3.5/Raven.Abstractions/Data/PatchCommandType.cs –