如何删除 couchbase 中没有子文档的文档?

How to delete documents with no subdocuments in couchbase?

我有一个 ID 为 x

的 couchbase 文档

x 没有子文档,因为在一些子文档操作中都被删除了,它是这样的 {}

我想删除所有没有子文档的空文档。是否可以在 couchbase 中使用 N1QL 查询或其他方式?我尝试使用谷歌搜索解决方案,但没有找到相关的解决方案。

感谢您花时间阅读问题直到最后。

以下查询需要主索引。

DELETE FROM default AS d
WHERE d = {};

以下查询使用 ix10 作为覆盖索引。索引仅包含空对象。

CREATE INDEX ix10 ON default(OBJECT_LENGTH(self))
WHERE OBJECT_LENGTH(self) = 0;

DELETE FROM default AS d
WHERE OBJECT_LENGTH(d) = 0;

您可以通过以下数据进行验证。 select 应该只给 "k003"

INSERT INTO default VALUES ("k001",1), VALUES ("k002",{"a":1}),  VALUES ("k003",{});

SELECT META(d).id
FROM default AS d
WHERE OBJECT_LENGTH(d) = 0;