Cloudant / CouchDB是否可以创建视图检查以查看是否存在重复项?

时间:2014-07-07 15:12:30

标签: javascript couchdb cloudant

我有一个观点

function(doc) {
    if (doc.type == "XXXXX") {
            emit(doc.name, 1);
    }
}

是否可以更改它以便视图只发出该doc.name(如果已经不存在)?我完全清楚你有减少功能;但是,它仍然减慢了视图的初始构建。

提前致谢

3 个答案:

答案 0 :(得分:2)

结帐couchdb reduce grouping。我想如果你的观点是为了发出:

emit(doc_name,1)

并且您的reduce函数是_sum,您可以使用group = true

查询此map / reduce视图

答案 1 :(得分:0)

从根本上说,map函数只包含传递给它的文档的上下文。唯一可能的优化是Erlang本机视图(或Cloudant Query - 请注意,目前还没有公开reduce。)

答案 2 :(得分:0)

我认为唯一的方法是使用reduce,然后使用dbcopy:

"map": emit(doc.name, 1);

"reduce": return keys[0];

"dbcopy": "unique_names"

这样你就有了一个名为" unique_names"的新预先计算的数据库。只有独特的物品。

我不认为可以在没有减少的情况下提出问题。