2016-07-15 48 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 –