2017-07-24 18 views
1

如果我有多個帶有標籤數組的文檔,刪除標籤出現的最有效方法是什麼?使用CouchDB刪除多次值的最有效方法

示例文件:

"name": "doc1", 
"tags": ["blue", "pink", "red"] 

"name": "doc2", 
"tags": ["brown", "pink", "yellow"] 

如果我現在想從兩者的所有文件刪除「粉紅」,我可以通過每個文件循環,然後通過標記每個陣列循環,測試「粉紅」 。但我試圖找出是否有更高效和/或構建這樣做的方式?

回答

0

你可以做一個視圖,發出每個標籤。

如:

function(doc){ 
    for(var tag in docs.tags) 
    emit(tag); 
} 

然後,您可以通過指定要刪除的關鍵標籤查詢視圖。例如:?key="pink"

然後,您將不得不遍歷所有返回的文檔,從標籤中刪除粉紅色並將其全部更新。

+0

謝謝,這就是我已經得到的...只是想知道是否有一個整潔/更快的方式做到這一點?也許不是我想.. – user4893295

+0

不是。沒有像SQL數據庫那樣的批量更新。 –

相關問題