Удалить поле из коллекции в RavenDB Studio - PullRequest
2 голосов
/ 02 марта 2020

Я пытаюсь удалить свойство (чье дополнение к документам, с которыми я обращался за помощью, см. здесь ), используя RavenDB Studio (я случайно добавил их в неправильную коллекцию базы данных ...).

Опять я застрял в синтаксисе. Кроме того - я не могу поверить, что никто не собирался делать это до сих пор - по крайней мере, интенсивный поиск в Google не мог дать ничего полезного. Официальная документация также является краткой по этому вопросу, если не сказать больше. В сторону: почему DDL в RavenDB (и, вероятно, других БД No SQL) настолько громоздок?

Я пробовал различные версии

from things  as t
update {
    delete t.field 
}

, ни одна из которых не работает, и некоторые из них не работают даже не компилируется.

1 Ответ

5 голосов
/ 03 марта 2020

С помощью 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; 
}
...