问题标签 [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 回答
23 浏览

couchdb - 连续 _changes 监控和限制选项行为

使用以下参数监视_changes/资源时:

我在第一个查询中收到前 5 行,但后来没有收到任何通知。当没有指定限制参数时,更新即将到来,但是我在第一次运行时获得了整个数据库内容。

这是正常行为吗?沙发数据库 2.1

0 投票
1 回答
426 浏览

couchdb - CouchDB 设计文档...保存失败:表达式不评估函数

所以我正在尝试创建一个设计文档CouchDB还有一个小问题。这是一个机器人团队侦察系统。设计文档应该检查用户是否具有“marea”角色。如果他们这样做,则允许他们将文档输入到数据库中。然后设计文档应该采用 JSON 字段“points”并在“team”字段匹配时对其进行平均。平均值应合并回数据库。如果用户没有“marea”角色,那么他们应该被限制输入任何文档。请让我知道您对以下代码的看法,我还想就收到的错误消息提供一些建议。我可以很好地保存设计文档,但它的功能有点不确定。即使该用户具有“marea”角色,它也可以防止用户创建具有“points”值的新文档。

如何解决此问题,以便设计文档执行其预期功能?

0 投票
1 回答
6487 浏览

authorization - CouchDB:此数据库加载失败/无法打开数据库分片(以管理员身份登录)

我正在尝试重新获得对存储在 CouchDB 中的数据库的访问权限,但This database failed to load.显示的是错误而不是数据库(请参阅附件)。

  • 我立即开始看到所有这些错误
  • 这是一些用户权限配置错误(1.错误This database failed to load.是正常的,当缺少权限时,2.对deletereplicate数据库的操作丢失)。但是,我以管理员身份登录。

CouchDB Fauxton UI 的屏幕截图

你能帮我找到错误的根本原因吗?

简单的 PUT 和 DELETE 请求curl -X PUT http://admin:somepassword@127.0.0.1:5984/testdb

启动 CouchDB:

通过 CouchDB 的 Fauxton UI 列出数据库:

0 投票
1 回答
1145 浏览

couchdb - CouchDB 2.1.1:内部服务器错误

在安装CouchApp实用程序、Sofa 博客应用程序和示例数据库 myblogdb以及CouchDB 2.1.1之前,我的 CouchDB 正在工作,但我从未看到任何Internal Server Error.

在过去的 2 小时内,一个特洛伊木马将自己作为一个进程附加到了 CouchDB。从那以后我删除了它,但它可能卡住了 CouchDB 的一些设置。

为什么我跑不了myblogdb?此错误是否与升级到引起的破坏性更改有关CouchDB 2.1.1

首先,couchapp pushmyblogdb 仅适用于第二次尝试(第一次尝试以 结束Internal Server Error):

其次,myblogdb从网络浏览器运行 couchapp:

浏览器内部服务器错误

couchdb.log

第三,Internal Server Error在创建/删除任何数据库时,我也在 Fauxton UI 中收到,但请求仍然被执行:

创建/删除数据库时出现内部服务器错误

0 投票
1 回答
218 浏览

purescript - 在脚本中创建的 couchdb 服务器管理员无法在同一脚本中创建数据库

在同一个脚本中,我可以在 /_config/admins/ 上成功创建服务器管理员,然后在 _session 端点上以该管理员身份登录。回应是:

但是,我无法创建数据库:

也就是说,直到我关闭会话并启动另一个会话,以完全相同的方式验证和创建数据库。

我试图等待(2000 毫秒),但这不是解决方案。

我运行 Couchdb 2.1.1。该脚本是 Javascript,由 Purescript 编译而成。

这是 Purescript 源代码:

0 投票
1 回答
497 浏览

cors - 浏览器不保存从 CORS 请求获得的身份验证 cookie

==== 问题已解决 ====

下面描述的问题是由于未在底层 xhr 请求对象上正确设置属性“withCredentials”引起的。从下面给出的请求和响应的跟踪中我们看不到这一点。

对于 Purescript 用户:Affjax 库便利函数(put、get 等)依赖于将这个属性设置为 false 的 defaultRequest 对象。

=========================

在下面给出的请求和响应场景中,浏览器首先进行身份验证,然后尝试在 Couchdb 中创建数据库。

源位于http://127.0.0.1,服务器位于http://127.0.0.1:5984,因此请求被认为是跨域的。

这将失败并显示错误,指示客户端未通过身份验证。然而,就服务器而言,客户端是经过身份验证的:它发送一个 AuthSession cookie。问题是浏览器不会在数据库创建请求中返回该 cookie。事实上,我无法通过任何 Chrome 界面找到 cookie:它没有被存储。

我完全不知道为什么。我检查了 CORS 规范(https://www.w3.org/TR/cors/#resource-sharing-check-0),据我所知,所有接受 cookie 的要求都得到了满足。请求的源域是http://127.0.0.1,该域在 Access-Control-Allow-Origin 标头的内容中。请求的标头位于 Access-Control-Allow-Headers 标头的内容中。Access-Control-Allow-Credentials 为“真”。

对 COUCHDB 的飞行前身份验证请求

回复

实际身份验证请求

回复

在 COUCHDB 中创建数据库的预检请求

回复

实际要求

回复

0 投票
0 回答
629 浏览

couchdb - CouchDB 2.1 集群在使用新 IP 地址的实例启动后给出“数据库无法加载”

我有一个 CouchDB 集群,在 3 个节点(n=3)上运行 9 个分片。我关闭了运行节点的三个实例,并使用新的内部 IP 地址创建了 3 个新实例。在此之后,我收到数据库的“数据库加载失败”错误。

我开始阅读有关移动分片的信息,并且我知道从 2.1.0 到 2.1.1 的变化(如本问题所回答)。

在尝试解决此问题时,我修改了其中一个节点的数据副本以尝试调整 _dbs 元数据。但是,我认为我只是把元数据弄得一团糟。

我在想,为了解决这个问题,我可以:

  1. 更改其中一个节点的 IP 地址以匹配旧 IP 地址。

  2. 仅在此实例上使用数据的原始副本启动集群。

  3. 告诉 CouchDB 从集群中删除关于两个非功能节点的 _membership 信息。

  4. 使用新 IP 地址将两个新节点添加到集群。

...然后集群可能会将分片从一个节点同步到所有三个节点,并且一切都会正常工作?

仍在尝试弄清楚 CouchDB 2.1.1 集群是如何工作的,因此对 CouchDB 文档之外的任何信息表示赞赏。

0 投票
1 回答
284 浏览

javascript - 错误:使用默认索引时无法对字段“余额”进行排序

我正在尝试运行如下查询:

我正在Hyperledger composer playground上运行查询。它给了我一个错误说:

错误:使用默认索引时无法对字段“余额”进行排序

我们如何在 Playground 中使用 query 或 order by 进行排序?

0 投票
2 回答
1100 浏览

couchdb-2.0 - 是否可以获得所有冲突的列表?

我正在解决一些冲突,并且正在运行一个测试数据库,该数据库具有令人担忧的冲突数量。我正在寻找一种方法来观察冲突的燃烧情况,以验证我的脚本是否正常工作。有没有办法检索所有有冲突的文档 ID 的列表?

我尝试过类似的https://server/db/_all_docs?include_docs=true&conflicts=true事情,但这会返回所有内容,无论是否冲突。我只想要有冲突的文档的ID,理想情况下我不需要冲突本身,只需要文档ID。

这可能吗?

我的另一个想法,一个更加手动的过程,是编写一个脚本来获取所有文档,然后遍历所有文档,使用 get 命令获取冲突,然后将它们全部记录下来。

0 投票
1 回答
349 浏览

couchdb - 使用 CouchDB (Fauxton) 创建验证

我以以下方式将产品存储在 CouchDB 数据库中:

我想创建一个验证,以确保每个带有 的新文档type Product都有该字段name。我找到的唯一文档是http://guide.couchdb.org/draft/validation.html阅读后我写/复制了这个验证:

比我使用 Fauxton 来创建它:

截屏

但它不起作用。我可以创建这样一个没有name字段的文档。我做错了什么?