Couchbase:如何使用文档 ID 模式删除多个文档
Couchbase : How to Delete Multiple Documents By Using Document ID pattern
我是 Couchbase 数据库的新手。
我已经用 10,000 个文档填充了一个存储桶,我想通过使用 N1Ql 删除查询使用文档 ID 模式删除这些文档。例如,密钥类似于 :ao.sl3:eid:89049032000001000000000016677381。所以我想使用一个模式,比如 ':ao.sl3:eid%' 来删除所有文件。
在 Couchbase Web UI 上,我的文档如下图所示 -
我想使用 CouchBase web UI 查询编辑器来删除文档。
谢谢
你需要 primary index to do this, but you can simply use the LIKE
operator:
DELETE
FROM mybucketname
WHERE META().id LIKE ':ao.sl3:eid%'
一些注意事项:
- 在生产中使用主索引是一件非常危险的事情。如果这是一次性的事情,请确保在
DELETE
具有 运行. 之后删除该主索引
- 如果这是您将在生产中定期执行的操作,您可能需要考虑另一种方法。根据您的用例,您可能想要查看 TTL、N1QL 分页、事件或可以使用更高效索引的备用数据模型。
已经有几年了,但我只是在跟进任何未解决的问题,因为 Matthew Groves 表示您可以使用 Couchbase Eventing 服务。
做你想做的事情的功能非常简单,只有 4 行(如果算上评论,则为 8 行)。
// example the keys are like :ao.sl3:eid:89049032000001000000000016677381
// delete any key starting with a pattern like ":ao.sl3:eid:"
// make a binding of a bucket alias called src_bkt in read+write mode
// then deploy with a Feed Boundary of Everything.
function OnUpdate(doc, meta) {
if (!meta.id.startsWith(':ao.sl3:eid:')) return;
delete src_bkt[meta.id];
}
有关 Couchbase Eventing 的更多信息,请参阅 eventing-overview and eventing-examples
我是 Couchbase 数据库的新手。
我已经用 10,000 个文档填充了一个存储桶,我想通过使用 N1Ql 删除查询使用文档 ID 模式删除这些文档。例如,密钥类似于 :ao.sl3:eid:89049032000001000000000016677381。所以我想使用一个模式,比如 ':ao.sl3:eid%' 来删除所有文件。
在 Couchbase Web UI 上,我的文档如下图所示 -
我想使用 CouchBase web UI 查询编辑器来删除文档。
谢谢
你需要 primary index to do this, but you can simply use the LIKE
operator:
DELETE
FROM mybucketname
WHERE META().id LIKE ':ao.sl3:eid%'
一些注意事项:
- 在生产中使用主索引是一件非常危险的事情。如果这是一次性的事情,请确保在
DELETE
具有 运行. 之后删除该主索引
- 如果这是您将在生产中定期执行的操作,您可能需要考虑另一种方法。根据您的用例,您可能想要查看 TTL、N1QL 分页、事件或可以使用更高效索引的备用数据模型。
已经有几年了,但我只是在跟进任何未解决的问题,因为 Matthew Groves 表示您可以使用 Couchbase Eventing 服务。
做你想做的事情的功能非常简单,只有 4 行(如果算上评论,则为 8 行)。
// example the keys are like :ao.sl3:eid:89049032000001000000000016677381
// delete any key starting with a pattern like ":ao.sl3:eid:"
// make a binding of a bucket alias called src_bkt in read+write mode
// then deploy with a Feed Boundary of Everything.
function OnUpdate(doc, meta) {
if (!meta.id.startsWith(':ao.sl3:eid:')) return;
delete src_bkt[meta.id];
}
有关 Couchbase Eventing 的更多信息,请参阅 eventing-overview and eventing-examples