2016-06-13 60 views
1

文件我们在couchbase下列文件:Cocuhbase删除匹配的文本

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

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

首先创建使用N1QL数据的主要指标,这可以通过Couchbase SDK来完成,Query workbench(集成在即将到来的Couchbase 4.5版本),或位于该Couchbase bin目录中的CBQ tool(/选择/ couchbase /箱在Linux上,OSX上的.app文件以及Windows上的安装目录中)。

下面的查询上创建了一个名为“mybucket”桶主索引,这使您可以在一个桶中进行任何N1QL查询:

CREATE PRIMARY INDEX ON `mybucket`; 

的性能和生产的目的,你应该创建一个辅助index:

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'; 

你可以找到删除有关N1QL的更多信息,请参阅Couchbase Server documentation