2016-06-13 57 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