使用CouchDB删除多次出现的值的最有效方法

时间:2017-07-24 16:44:05

标签: javascript couchdb

如果我有多个带有标签数组的文档,那么删除标记出现次数的最有效方法是什么。

示例文件:

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

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

如果我现在想删除"粉红色"从两个文档和所有文档中,我可以循环遍历每个文档,然后循环遍历每个标记数组,测试" pink"。但我试图找出是否有更高效和/或内置的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

你可以做一个发出每个标签的视图。

例如:

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

然后,您可以通过指定要删除密钥的标记来查询视图。例如:?key="pink"

然后,您将不得不遍历所有返回的文档,从标记中删除粉红色并更新所有文档。

相关问题