【问题标题】:Patching RavenDB when field already exists当字段已存在时修补 RavenDB
【发布时间】:2017-08-27 10:40:47
【问题描述】:

我正在使用 c# 中的 RavenDB,并向现有模型添加了一个新字段。我正在使用这个命令`

PatchCommandType.Set

` 将新字段添加到现有文档中。

当这个补丁命令在已经设置了这个特定字段的文档上运行时,补丁命令会覆盖现有的字段/值还是会创建一个具有相同名称的重复字段?

在我们继续开发时,我想保留这个补丁命令代码,并希望确保它不会损坏数据库。

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

【问题讨论】:

    标签: c# .net ravendb nosql


    【解决方案1】:

    如果字段不存在,Set 将创建该字段,如果存在则对其进行修改,是的。

    【讨论】:

    • 好的,所以我查阅了一些文档,发现有一个 add 方法,我想知道如果它不存在,它是否只会添加该字段。所有文档示例都说“添加新属性”。
    • Add 用于将项目添加到数组中。在此处查看 XML cmets:github.com/ayende/ravendb/blob/v3.5/Raven.Abstractions/Data/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多