如何删除 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;
我有一个 ID 为 x
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;