Cocuhbase删除匹配文本的文档

时间:2016-06-13 20:51:30

标签: couchbase

我们在couchbase中有以下文件:

Doc1 :
{
   property1 : "someval"
   name : "DOC_OF_TYPE1"
}

Doc2 :
{
   property1 : "someval2"
   name : "DOC_OF_TYPE1"
}

Doc3 :
{
   property1 : "someval2"
   name : "DOC_OF_TYPE2"
}

有没有办法查看" DOC_OF_TYPE1"的文件?只要 ?有没有办法从couchbase中删除该类型的所有文档?

1 个答案:

答案 0 :(得分:1)

从Couchbase Server 4.1开始,通过使用N1QL查询和DML(数据操作语言)可以轻松实现这一点。

首先使用N1QL为您的数据创建主索引,这可以通过Couchbase SDK,Query workbench(集成在即将推出的Couchbase 4.5版本中)或位于Couchbase bin目录中的CBQ tool来完成。 (linux上的/ opt / couchbase / bin,OSX上的.app文件和Windows上的安装目录中)。

以下查询在名为' mybucket'的存储桶上创建主索引,这允许您在存储桶上执行任何类型的N1QL查询:

CREATE PRIMARY INDEX ON `mybucket`;

出于性能和生产目的,您应该创建一个二级索引:

CREATE INDEX 'document_name' ON `mybucket`(name);

这会在每个文档的名称'上创建一个索引。领域。您现在可以通过其名称字段有效地选择文档(这仅适用于主索引,但速度较慢):

SELECT *, meta().id FROM `mybucket` WHERE name = 'DOC_OF_TYPE1';

或根据名称字段删除它们

DELETE FROM `mybucket` WHERE name = 'DOC_OF_TYPE2';

您可以在Couchbase Server documentation

中找到有关N1QL的更多信息