问题标签 [couchdb-2.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
287 浏览

javascript - CouchDB javascript 引擎支持哪些功能

我想做一个validate_doc_update. CouchDB 支持此功能的哪些功能?我可以使用Array.find,Array.mapObject.keys其他类似的功能吗?如果最新版本支持这些功能,我应该以哪个 CouchDB 版本为目标以确保我的验证将在每个系统上无缝运行 - 我将检索 CouchDB 版本并使其高于所述版本。

0 投票
2 回答
479 浏览

couchdb - CouchDB 2.0.0 make install 在 CentOS 7 上失败

我将按照 CouchDB 文档安装说明进行操作:http: //docs.couchdb.org/en/2.0.0/install/unix.html

我安装依赖项:

配置顺利:

您已经配置了 Apache CouchDB,是时候放松一下了。放松。

但就在我开始感到放松的时候,我被 gmake 扔了一个曲线球:

rebar_core 中未捕获的错误:{error, {erl_interface,include,"code:lib_dir(erl_interface) 无法找到 erl_interface 库。"}}

文档提供的唯一线索是在 make 失败时尝试 gmake,但由于 gmake 和 make 在 CentOS 7 上是相同的,因此没有帮助。从输出来看,它似乎是一个依赖问题,但我不假装理解 Erlang 依赖或对这个特定的依赖一无所知。我在文档建议的 yum 中安装了软件包,我认为这应该足够了。任何帮助,将不胜感激。

0 投票
2 回答
558 浏览

couchdb - Does CouchDB 2 sync user sessions across nodes?

I’m currently working on a docker-compose setup that can be used to deploy a cluster of CouchDB 2 nodes. I’ve finally got the nodes working and the data syncing across nodes, but unless I am mistaken, it appears that CouchDB does not sync user sessions.

My setup has 3 nodes and uses an haproxy setup almost identical to haproxy.cfg. As per my configuration, haproxy routes incoming traffic on port 5984 to port 5984 on all 3 nodes.

Assume an admin username of root and password of password.

I first log in with:

Note the returned AuthSession is used below as AUTHSESSION.

Then, I issue the following:

This usually fails with “You are not a server admin.” I can continue to issue the same PUT and it will eventually succeed as I assume that haproxy eventually routes the request to the single node with which I am authenticated. As haproxy is using round robin there is a 1 in 3 chance that I will hit the target node.

I would think that CouchDB 2 could handle syncing user sessions across nodes. Am I making a silly assumption here?

(Please see run cluster via docker-compose to replicate my setup)

Update with specific solution for my docker-compose setup

As per @lossleader, you need to set the secret in the [couch_httpd_auth] section so that it is identical across nodes. Moreover, you need to set the same admin username and password in the [admins] section. The detail I missed here is that all nodes must have the exact same password hash in the .ini file. Having the same cleartext password is not enough, as otherwise, each node will generate its own salt and generate a different hash.

See run cluster via docker-compose for my complete setup.

0 投票
1 回答
685 浏览

couchdb-2.0 - Couchdb 2.0 将多个用户数据库复制到单个数据库

我正在使用 couchdb,每个用户都有自己的数据库。

但是,我有一个 Web 应用程序,它应该能够在任何数据库中查找 _id 并返回文档。对于成千上万的用户,跨数千个 couchdb 实例进行查询是不切实际的。

如何将我的数据复制到单个主数据库,以便我可以通过 _id 进行查询?

0 投票
0 回答
199 浏览

couchdb-2.0 - Firewalld 似乎阻止连接到我的 CouchDB 2.0

我正在尝试在我的 CentOS 7 服务器上设置一个 CouchDB 2.0 实例。我已经将它安装并作为 systemd 服务运行,当我使用 127.0.0.1 或 0.0.0.0 从服务器访问它时,它会以友好的 hello world 消息进行响应

在我的 local.ini 文件中,我将 bind_address 配置为 0.0.0.0

我的理解是,如果我有这个绑定地址,我可以从防火墙中打开的任何 IP 地址连接到端口 5984

我正在为我的防火墙使用 firewalld,并且我已将其配置为打开端口 5984 此配置通过列出公共区域的配置来确认:

我还使用 XML 在 /etc/firewalld/services/couchdb2.xml 创建了一个名为 couchdb2 的服务:

根据我对 firewalld 的了解,我现在应该能够在 5984 上接收连接

但是当我从笔记本电脑卷曲时,我的连接被拒绝:

当我通过 127.0.0.1 或 0.0.0.0 在本地连接到 couchdb 实例时,我可以在我的 couchdb 日志中看到 200 响应:

但是当我从笔记本电脑上蜷缩起来时,couchdb 日志中没有显示 Connection Refused 错误这向我表明问题可能是防火墙而不是 CouchDB,但我不确定。拒绝连接总是防火墙吗?如果 CouchDB 实例出现问题,我会收到其他错误吗?据我所知,CouchDB 和 firewalld 都配置正确,但它没有像我预期的那样工作。任何帮助都将不胜感激,无论您是否知道问题,或者您是否可以帮助我辨别问题是否与 CouchDB 或 firewalld 有关。

0 投票
1 回答
842 浏览

couchdb - CouchDB 2 中的序列号错误还是有另一种比较序列号的方法?

我正在深入研究 CouchDB 2,并且发现了一些带有序列号的意外排序。在一种情况下,我发现 _changes 提要中的早期更改具有序列号

对于同一个数据库,我的 _changes 提要中的最后一个序列号是

在浏览器控制台中,以下是错误的

这是一个错误还是我需要使用其他方法来比较序列号?

在查看我的 _changes 提要中的其他序列号时,看起来它们通常按照我的预期排序,但在这种情况下,当第一个数字(例如 99)从 2 位跳到 3 位时,排序中断. 如果将其归结为一个简单的字符串比较示例,您可以看到 '228' > '99' => false

0 投票
1 回答
734 浏览

couchdb - CouchDB:max_replication_retry_count 和 retries_per_request 之间的区别

我目前正在探索 CouchDB 复制,并试图找出配置文件[replicator]部分中max_replication_retry_countretries_per_request配置选项之间的区别。

基本上,我想将本地 couchdb 的连续复制配置到永远不会停止复制尝试的远程实例,考虑到潜在的连续离线时间(几天甚至几周)。因此,我希望进行无限复制尝试,最大重试间隔为 5 分钟左右。我可以这样做吗?我是否需要更改默认配置才能实现此目的?

0 投票
1 回答
109 浏览

couchdb - 编辑设计文档并设置 update_notification 时出错

我有一个 CouchDB 2.0 安装,在 Ubuntu 16.04 上运行,单节点。我的应用程序的一个特定方面是写入繁重的负载,但我希望读取需要及时,所以我希望使用它update_notification来重建每次n写入的索引。

我创建了一个小型 NodeJS 应用程序来处理这个问题,但发现每次编辑设计文档时,我的服务器都会崩溃。结果证明这是因为 CouchDB 正在启动数百个更新侦听器副本,而这又似乎是由于couch.log. 每次发生崩溃时,都会生成一个新的更新侦听器,但旧脚本不会终止。

我把它简化为一个简单的例子,update_notificationhander 实际上什么都不做,只是记录它从以下位置接收到的更新STDIN

更新.bash:

本地.ini:

我希望看到updates.log充满诸如...之类的通知

...这就是在 CouchDB 1.6.1 上看到的。但是在 CouchDB 2.0 上,我看到我couch.log的报告中有数百个崩溃报告,并且我的更新脚本反复重新生成。

我猜我对如何update_notification运作做出了一些糟糕的假设,但对于我的生活,我不知道那可能是什么?这也是一个难以调试的问题,因为错误有些不透明,即使update_notification我能想出的最简单的脚本仍然表现出这种行为。

有谁知道我在这里做错了什么?

0 投票
1 回答
427 浏览

database - 无法删除或获取 couchdb2 数据库

我有一个创建和删除测试数据库的测试脚本。在今天的某个时候,它开始失败。进一步挖掘,我的几个测试数据库似乎处于不一致的状态。

数据库出现在 Fauxton 中,并显示“此数据库加载失败”消息。我无法在此界面上查看数据库内容。它们的名称通常是链接,现在是纯文本。

使用 curl 发出 GET 和 DELETE 命令会显示以下错误:

我查看了 couchdb2 数据目录,确实看到这些数据库存在分片。

我该怎么做才能删除这些数据库?我不确定是否可以通过手动删除 couchdb2 数据目录中的文件来做到这一点。

0 投票
0 回答
609 浏览

couchdb - 通过 CouchDB 到 PouchDB 的 PouchDB 复制对于实时应用程序来说太慢了

我有 2 台设备(一台运行电子应用程序,另一台运行 react-native 移动应用程序)使用 PouchDB 和 CouchDB 2.0 集群在它们之间同步数据。

我的用例是在两台设备上运行的实时应用程序。我注意到,如果在一个 PouchDB 实例上更新文档,新写入的数据通过 CouchDB 2.0 集群与另一个 PouchDB 实例同步大约需要6-11 秒。这种设置是否会出现这种延迟?是否可以进一步加快同步时间?

我的问题是,作为一个实时应用程序,每次更新之间的延迟量是不可行的。PouchDB/CouchDB 真的适合我的用例吗?