Удалите все документы с нулевым содержимым из Couchbase, используя N1QL - PullRequest
0 голосов
/ 14 мая 2018

Я выполнил запрос с небольшой ошибкой на моем сервере couchbase, это выполненный запрос:

INSERT INTO `Writer_DB` (KEY _k, VALUE _v)
SELECT META().id _k, _v
from `Sam_DB` v

Я использовал v вместо _v, чтобы операция была выполнена, но в результате я получилидентификаторы, но у меня нет содержимого документа, поэтому при поиске документа по его идентификатору отображаемое содержимое имеет значение null.

Я снова запускаю запрос, но он обнаружил ошибку из-за дублирования идентификатора, поэтомужелательно удалить все документы с нулевым содержимым или «заполнить» содержимое документа идентификатором.Дело в том, что я новичок на диване и в NoSql.

1 Ответ

0 голосов
/ 15 мая 2018
DELETE FROM `Writer_DB` AS d WHERE d IS NULL;

Приведенный выше запрос требует первичного индекса, для ускорения запроса можно использовать следующий индекс:

create index ix1 on default(self) WHERE self IS NULL;
DELETE FROM `Writer_DB` AS d WHERE d IS NULL;

Для обновления документов

UPDATE `Writer_DB` SET id = META().id WHERE d IS NULL;

ИЛИ

DELETE FROM `Write_DB` USE KEYS (SELECT RAW META().id from `Sam_DB`);
...