2016-07-15 65 views
0

我正在使用c#中的RavenDB,並且向現有模型添加了一個新字段。我用這command`當字段已存在時修補RavenDB

PatchCommandType.Set

`新的字段添加到現有的文檔。

當此修補程序命令在已經具有此特定字段集的文檔上運行時,修補程序命令是否會覆蓋現有字段/值或將創建具有相同名稱的重複字段?

我想離開這個補丁命令代碼,因爲我們繼續開發並希望確保它不會損壞數據庫。

store.DatabaseCommands.UpdateByIndex("Index", 
     new IndexQuery{ 
      Query = "Model:" 
     }, 
     new []{ 
      new PatchRequest{ 
       Type = PatchCommandType.Set, 
       Name = "IsArchived", 
       Value = true 
      }, 
     } 
); 

回答

1

設置將創建該字段,如果它不存在或修改它,如果它存在,是的。

+0

好的,所以我查了一些文檔,看到有一個add方法,我想知道如果這隻會添加字段,如果它不存在。所有文檔示例都說「添加新屬性」。 –

+0

添加用於將項目添加到數組。請參閱此處的XML註釋:https://github.com/ayende/ravendb/blob/v3.5/Raven.Abstractions/Data/PatchCommandType.cs –