【问题标题】:is there a way to clear duplication record from results?有没有办法从结果中清除重复记录?
【发布时间】:2016-05-26 06:27:42
【问题描述】:

我有一个视图,但从视图结果中确实有重复的文档,如下所示,我怎样才能获得重复的结果并获得唯一的?提前谢谢你

{
"total_rows": 9,
"offset": 0,
"rows": [

        {
            "id": "xxxx",
            "key": "12345",
            "value": {
            "_id": "abc123",
            "_rev": "4-8db4da81d1e20afcea0a328fb16e7ec8",
                "field1": "abc",
                "field2": "dfr"
            },

            {
                "id": "xxxx",
                "key": "12345",
                "value": {
                    "_id": "abc123",
                    "_rev": "4-8db4da81d1e20afcea0a328fb16e7ec8",
                    "field1": "abc",
                    "field2": "dfr"
                },
            ]
        }

景色是这样的

function(doc) {
if(doc){
    for (var i in doc.item){
            emit(doc.item[i].key,doc);
        }
    }  
}

视图调用者 ...._view/duplicate?key="12345"

执行以下 reduce 时,我总是遇到这个错误:"error":"reduce_overflow_error","re​​ason":"reduce output must shrink more 迅速:

function (keys, values, rereduce) {
var uniqueKey = [];
var newValues = [];
for (var i=0; i<values.length; i++) {
    if (uniqueKey.indexOf(values[i]._id)==-1) {
        uniqueKey.push(values[i]._id);
        newValues.push(values[i]);
    }
}
return newValues;

}

【问题讨论】:

  • 您能否在发送查看之前显示您准备数据的代码?
  • 嗨 Emre,谢谢,我没有代码,我只想在 couchdb 中使用 map 或 reduce 等函数来删除具有给定密钥的相同其他文档

标签: javascript couchdb couchdb-futon couchdb-python


【解决方案1】:

问题是你的地图功能:

function(doc) {
if(doc){
    for (var i in doc.item){
            emit(doc.item[i].key,doc);
        }
    }  
}

通过这样做,您会多次发出同一个文档,因此您的视图结果中有重复的文档也就不足为奇了。如果你想返回一个文档的所有项目而不重复,你可以做一些简单的事情:

function(doc) {
  if(doc.item) {
    emit(doc.item, null)
  }     
} 

另外请注意我是emit(doc.item, null) 而不是emit(doc.item, doc)。发出文档是一种不好的做法,您应该使用选项include_docs=true 查询视图。否则,您的视图索引将与您的数据库具有相同的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2016-01-06
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2020-07-01
    相关资源
    最近更新 更多