5

我正在尝试使用 RavenDB Studio(我不小心将它们添加到错误的数据库集合中......)删除一个属性(我向其寻求帮助的文档中添加了该属性,请参见此处)。

同样,我被困在语法上。另外——我不敢相信直到现在还没有人打算这样做——至少激烈的谷歌搜索无法产生任何有用的东西。至少可以说,官方文档在这个主题上也很简洁。旁白:为什么 RavenDB(可能还有其他 NoSQL DB)中的 DDL 如此繁琐?

我尝试了各种版本

from things  as t
update {
    delete t.field 
}

这些都不起作用,其中一些甚至无法编译。

4

1 回答 1

8

使用 Patching - 可以从客户端代码中以这种方式删除文档字段:

单一文件:

session.Advanced.Defer(new PatchCommandData(
    id: "yourDocumentID",
    changeVector: null,
    patch: new PatchRequest
    {
        Script = @"delete this.fieldToDelete"
    },
    patchIfMissing: null));

session.SaveChanges();

请参阅:修补 - 删除属性


多个文件:

var operation = store
    .Operations
    .Send(new PatchByQueryOperation("from things update { delete this.field; }"));

operation.WaitForCompletion();

示例取自这里


对于 RQL,只需使用:

from things 
update { 
   delete this.field; 
}
于 2020-03-03T08:51:04.213 回答