【问题标题】:Find duplicated documents in CouchDB在 CouchDB 中查找重复的文档
【发布时间】:2017-09-07 07:59:06
【问题描述】:

我想使用Futon在我的CouchDB数据库中查找重复条目,所以我想使用该函数:

function(doc) {
    if (condition){  
        emit([doc.type], doc);
    }
}

我的文档中有这个json 结构:

{
  "_id": "09a00ad8xxxxxxxxxxxxxxxxxx",
  "_rev": "2-e8da23aba404864xxxxxxxxxxxxx",
  "device_num":56,
  "plantation": {
    "id": 36,
    "name": "AGRUPATION2"
  },
  "creation_date": "26/04/2017",
  "revisionCauces": false,
  "integridad": false,
  "updated": "2017/04/26 12:22",
  "created": "user2",
  "completed": false,
  "num": 2278,
  "group": {
    "id": 6,
    "name": "ZONE 4"
  }
}

在我的例子中,重复的条目不止一个文档如何重复 json 字段:

设备编号

和

数量

现在,如果我搜索文档,我会执行以下操作:

function(doc) {
    if ( doc.type == "work" && doc.num == 1667 && doc.device_num == 8 ){  
        emit([doc.type], doc);
    }
} 

我得到了两个结果,但这是错误的,因为

设备编号

和

数量

应该是唯一的。所以我必须检查我的 CouchDB 上是否有更多重复的文档

【问题讨论】:

    标签: javascript couchdb


    【解决方案1】:

    我不确定我是否理解这个问题,但试试这个,让我知道它是否适用于您的情况:

    地图:

    function(doc) {
        emit([doc.device_num, doc.num], doc._id);
    }
    

    减少:

    function(keys, values, rereduce) {
        return values;
    }
    

    【讨论】:

    • 谢谢我刚刚编辑并添加了更多信息,是否更清楚?¿
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多