微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

benchdb复制一个方向无法连续工作

如何解决benchdb复制一个方向无法连续工作

我想将所有设计文档和某些包含字段clientId的文档从原始(A)复制到复制(B)。

我尝试了两种方法,但是都遇到相同的问题:

它会不断更新我的设计文档,但不会更新带有clientId的普通文档。它们在创建复制时仅复制一次。

1。尝试

curl -H 'Content-Type: application/json' \
            -X POST http://admin:*******@mycare.owitec.lan:5984/_replicator \
            -d '{
                "continuous" : true,"create_target" : true,"source" : {
                                               "url": "http://mycare.owitec.lan:5984/mycare_10001","headers": {
                                                 "Authorization": "Basic YWRtaW46QXNkZmdoKjU9"
                                               }
                                             },"target" : {
                                               "url": "http://mycare.owitec.lan:5984/mycare_rep_10001","filter": "article/clientDataRep"
            }'

    function(doc,req) {
    var v = doc._id.substr(0,6);
  
    if (v === '_desig' || v === '10001:') {
        return true;
    }
    return false;
}

2。尝试

curl -H 'Content-Type: application/json' \
        -X POST http://admin:********@mycare.owitec.lan:5984/_replicator \
        -d '{
            "continuous" : true,"source" : {
                                           "url": "http://mycare.owitec.lan:5984/mycare_10001","headers": {
                                             "Authorization": "Basic YWRtaW46QXNkZmdoKjU9"
                                           }
                                         },"target" : {
                                           "url": "http://mycare.owitec.lan:5984/mycare2_rep_10001","selector": { "clientId": {"$exists": false} }
        }'

我还检查了两个数据库是否存在冲突,并且两者都没有。我究竟做错了什么?在我有双向复制(从/到)的其他数据库中,我没有问题!

解决方法

是设计文档的validate_doc_update函数检查了两件事:

如果是更新,则您必须是作者或有一定规则

根据doc.type对象仅允许使用某些字段,而我有不符合要求的旧数据

复制始终在运行,我只是没有注意到(想想)validate_doc_update正在对其进行过滤

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。