Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CouchDB筛选的复制不工作_Couchdb_Pouchdb - Fatal编程技术网

CouchDB筛选的复制不工作

CouchDB筛选的复制不工作,couchdb,pouchdb,Couchdb,Pouchdb,我在客户端使用pookdb,在服务器端使用CouchDB。我的客户机需要使用过滤器从服务器复制数据 以下是我正在使用的客户端代码: _db.replicate.from(_remote_db, { filter: "repl/myfilter", live: false, retry: true, query_params: {

我在客户端使用
pookdb
,在服务器端使用
CouchDB
。我的客户机需要使用过滤器从服务器复制数据

以下是我正在使用的客户端代码:

_db.replicate.from(_remote_db, {
                filter: "repl/myfilter",
                live: false,
                retry: true,
                query_params: {
                    group: '11'
                }
            }).on('change', (info) => {
                dbReplChangeHandler(_db, _db_analytics, info, deferred);
            })
couchDB
数据库中的设计文档是:

   {
  "_id": "_design/repl",
  "_rev": "19-3848f574d651345540379c06b67699bb",
  "filters": {
    "myfilter": "function (doc, req){return true;}"
  }
}

客户端仍然无法从抛出此错误的服务器进行复制
超时,{gen_server,call,\n[coach_proc_manager,}
问题似乎出在couchdb 2.1.1上(我在Mac上确认了此行为,不知道它是否存在于其他平台上)。复制非常简单:

1) 创建一个测试数据库

curl -vX PUT http://localhost/testdb
2) 用文档填充

for i in {1..5}; do curl -vX PUT http://localhost/testdb/00$i -d '{"type":"A", "description":"Document 00$i"}'; done;
curl -X GET http://localhost/testdb/_changes?since=0
3) 测试您是否可以查看文档

for i in {1..5}; do curl -vX PUT http://localhost/testdb/00$i -d '{"type":"A", "description":"Document 00$i"}'; done;
curl -X GET http://localhost/testdb/_changes?since=0
您将看到类似于以下内容的输出:

{"results":[
{"seq":"3-g1AAAAB5eJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuDOZE5FyjAnmiWlmhuaIhNAx5j8liAJEMDkPoPMi2RIQsAx5cmmw","id":"001","changes":[{"rev":"3-c9fb50f5d39cdac66a342dfac914fc52"}]},
{"seq":"4-g1AAAAB5eJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuDOZElFyjAnmiWlmhuaIhNAx5j8liAJEMDkPoPMi2RIQsAx-UmnA","id":"004","changes":[{"rev":"1-987569f1cc05eaf1bad8793d290adab2"}]},
{"seq":"5-g1AAAAB5eJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuDOZE1FyjAnmiWlmhuaIhNAx5j8liAJEMDkPoPMi2RIQsAyDMmnQ","id":"005","changes":[{"rev":"1-987569f1cc05eaf1bad8793d290adab2"}]},
{"seq":"7-g1AAAACbeJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuDOZE1FyjAnmiWlmhuaIhNAx5j8liAJEMDkPoPNY0JbFqaoVGSobkxNn1ZAHN1MJo","id":"002","changes":[{"rev":"1-987569f1cc05eaf1bad8793d290adab2"}]},
{"seq":"8-g1AAAACbeJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuDOZE1FyjAnmiWlmhuaIhNAx5j8liAJEMDkPoPNY0ZbFqaoVGSobkxNn1ZAHOXMJs","id":"003","changes":[{"rev":"1-987569f1cc05eaf1bad8793d290adab2"}]},
"last_seq":"9-g1AAAACbeJzLYWBgYMpgTmEQTM4vTc5ISXLIyU9OzMnILy7JAUklMiTV____PyuDOZE1FyjAnmiWlmhuaIhNAx5j8liAJEMDkPoPNY0FbFqaoVGSobkxNn1ZAHO5MJw","pending":0}
4) 创建一个简单的“全部接受”筛选器

curl -vX PUT http://localhost/testdb/_design/test -d '{"filters":{"everything":"function(doc, req){return true;}"}}'
5) 将筛选器应用于_changes命令

curl -X GET http://localhost/testdb/_changes?filter=test/everything&since=0
现在您将看到如下内容:

{
    "error": "error",
    "reason": "{timeout,{gen_server,call,
               [couch_proc_manager,
        {get_proc,{doc,<<\"_design/test\">>,
{1,
[<<251,118,3,66,28,132,147,60,168,234,
101,119,87,97,205,255>>]},
{[{<<\"filters\">>,
{[{<<\"everything\">>,
<<\"function(doc, req){return true;}\">>}]}}]},
],false,[]},
{<<\"_design/test\">>,
<<\"1-fb7603421c84933ca8ea65775761cdff\">>}},
5000]}}"
}
{
“错误”:“错误”,
“原因”:“{timeout,{gen_server,call,
[coach_proc_经理,
{get_proc,{doc,,
{1,
[]},
{[{,
{[{,
}]}}]},
],false,[]},
{,
}},
5000]}}"
}
这是版本2.1.1,我已经确认版本2.1.1-1(尚未发布)可以工作(至少在这种情况下),您可以找到

如果问题发生在windows或linux上,您可能希望降级到2.1.0或2.0版


希望这有帮助

请,您能完成错误跟踪吗?此外,您还可以检查GET/db/_是否发生变化?filter=repl/myfilter是否正常工作。