В MarkLogic как искать в документах JSON, используя только ключ? - PullRequest
1 голос
/ 29 апреля 2019

У меня есть куча документов JSON в моей базе данных.Мне нужно выполнить операцию удаления для нескольких документов путем поиска документов, в которых есть определенное поле {только ключ}.Какой запрос я могу добавить к своему коду, чтобы он нашел все документы с полем?Я буду использовать их, чтобы получить их значения (целые числа), поместить их в массив и затем использовать их одно за другим.

1 Ответ

4 голосов
/ 29 апреля 2019

Если немного расширить ссылку, предоставленную Джорджем Бэйли, вы можете использовать cts.uris() вместо cts.search(), поскольку xdmp.documentDelete() принимает строки uri вместо документов:

const uris = cts.uris(
    null, 
    ['score-zero', 'unchecked'], 
    cts.jsonPropertyScopeQuery('theKey', cts.trueQuery())
    );
xdmp.documentDelete(uris);

Если это большое количество документов, вам может потребоваться указать начальное значение и ограничение на вызов cts.uris(), чтобы удалить различные фрагменты документов за несколько проходов.

Надеюсь, что поможет,

...