问题标签 [cloudant]
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.
couchdb - 使用 Cloudant 对数据库和文档进行时间点恢复
如何在 CouchDB / Cloudant 中保存更改,以便以后对我的数据库甚至特定文档进行时间点恢复?
couchdb - CouchDB:链接引用不同文档类型数组的文档
我是 CouchDB 的新手。我来自 .NET SQL Server 世界。
在浏览 CouchDB 的权威指南时,我感觉“这太棒了”。现在我正在测试我学到的一些东西,希望能在现实世界中实现它。
几周前我刚刚注册了一个 Cloudant 帐户,并开始使用它进行一些测试/学习。
在弄乱链接文档时,背后的整个理论看起来很简单,也是互联网上的海峡前锋示例。我想从具有一系列不同链接文档的文档中检索一些信息,这些文档本身具有链接文档数组。就像一个连接多对多关系表的多 SQL Server。你会看到下面的代码。希望这是有道理的。
以这个 SQL 查询为例。假设每个表中只有一个条目,我们应该返回一个记录,其中包含具有给定 sku 的鞋子的所有详细信息。但是,如果我们有多种鞋码,我们将不得不编写更多代码。
我希望 CouchDB 通过 SKU 在https://username.cloudant.com/test/_design/catalogue/_view/item-details?include_docs=true&key=%22656F-PINSEC12%22返回以下 JSON
给定以下文档和 map/reduce:
可能有更好的方法来实现这一点,但我想看看是否有可能拥有一个包含一系列链接文档的文档,这些文档也有一系列链接文档。但是我的 map/reduce 没有返回任何东西。它返回的只是:
我猜有人不会将所有信息存储在单个文档中,因为假设我们添加了新的展示尺码或将鞋码标记为不可用,这意味着必须将所有以前的值传回 CouchDB更新一个字段。
希望我的问题有意义 Oo__oO
couchdb - CouchDB / Cloudant 中保存了多少文档修订,保存了多长时间?
在 CouchDB 和 Cloudant 中,当文档发生更改时,数据库会保留以前的版本。保留什么,保留多长时间?
couchdb - 复制时 pouchdb 出现 Cloudant“case_clause”错误
我正在使用 Pouchdb 和 Cloudant,当我的 Web 应用程序启动时,它会在浏览器中从 Cloudant 复制到我的 pouchdb。我对 pouchdb 内部的工作方式有所了解,这就是我认为该过程的工作方式(高级):
- 复制开始
- 从 cloudant db 获取检查点文档(包含从服务器检索的最新序列号,如果不存在,则假定序列号为 0,这是我的情况)
- 从从该序列号开始释放的更改中获取更改(最多获取 25 个更改)
- 使用新的序列号将检查点文档写入(或更新)回 Cloudant 服务器(这样,如果发生网络错误,它可以从中断处继续或进行下一次复制)
- 重复直到没有变化
- 复制完成
问题出在第 4 步,当 pouch 尝试将该文档写入 cloudant 服务器(第一次)时,服务器返回“case_clause”错误。我认为问题可能是发送到 cloudant 的 id 无效(cloudant 不接受这种格式的 id),因为写入服务器的文档的 id 是_local/799c37dfaefb3774a04f55c7f8cee947
(或最后的其他随机数和字符)。我不知道这是否是有效的文档 ID(对于 cloudant,因为这对于 pouchdb 是准确的),所以我想我在问,是这个问题(cloudant 的不可接受的 id),还是有一些基于 cloudant 服务器返回的错误的其他问题。
这是正在编写的文档:
以下是 Chrome 调试器的完整错误输出:
注意:当我进入 cloudant 的被褥并使用其 id 手动输入检查点文档的 url 时,它不存在。
谢谢
编辑:
使用 Chrome 调试器的上述请求的标头信息:
authentication - Cloudant 身份验证:缺少 _users 数据库
我正在 Cloudant 上设置 CouchDB,我很困惑,因为 Cloudant 的身份验证方式似乎与常规 CouchDB 不同。具体来说,Cloudant 似乎缺少_users
数据库。
我在这里阅读了 Cloudant auth FAQ ,它提供了以下说明:
我可以在 Cloudant 上使用 CouchDB 安全功能(_users 数据库、安全对象、验证函数)吗?
是的你可以。如果要使用 _users 数据库,您必须首先关闭 Cloudant 自己的安全性,以便通过 _users 管理角色。为此,您需要将如下所示的 JSON 文档放入数据库的 _security 端点(例如 https://USERNAME.cloudant.com/DATABASE/_security):
{ "cloudant": { "nobody": ["_reader", "_writer", "_admin"] }, "readers": { "names":["demo"],"roles":[] } }
这些说明运行良好,并允许我更新数据库的 _security 对象。
不清楚的是如何设置 _users 数据库。它不是自动存在的,所以我尝试使用常规创建它:
curl -X PUT $COUCH/_users
这很好用,但是当我尝试将新用户添加到 _users 时,如下所示:
似乎可以正确创建文档:
{"ok":true,"id":"org.couchdb.user:me","rev":"3-86c3801fdb8c32331f5f2580e861a765"}
但是 Cloudant 上 _users 中的新用户缺少散列密码:
因此,当我尝试对该用户进行身份验证时,出现以下错误:
{"error":"bad_request","reason":"missing password_sha property in user doc"}
在我的本地 CouchDB 安装中,在 _users 中创建新用户将自动创建散列密码:
我尝试将“_design/_auth”文档从本地 CouchDB 安装复制到 Cloudant,但结果相同 - 没有散列密码。
我似乎在某个时候出轨了,但我不确定这发生在哪里。如何设置 Cloudant 以使用与常规 CouchDB 相同类型的身份验证?
couchdb - 使用本地 CouchDB 开发 Cloudant
我计划将我的数据库存储在Cloudant中。
在我们的应用程序的开发、测试和登台期间使用本地 CouchDB 是否安全,并且知道一切都在本地工作也应该在 Cloudant 上工作?
couchdb - Cloudant 在没有外部复制的情况下是否存在冲突?
我计划将我的数据库存储在Cloudant中。
我们不打算将复制复制到 Cloudant 中,仅用于外部备份目的。
假设 BigCouch 内部工作的文档不应该有任何冲突是否安全?
couchdb - Cloudant 数据库数量限制
我计划将我的数据库存储在Cloudant中。
我们的应用程序是多租户的。我们目前根据某些表格中的值对租户进行分离,这些表格自然会转换为文档中的值。另一种方法是每个租户都有数据库。我们目前有大约 100 个租户,并希望在我们的最佳预测中增长到 500-2000 个。
一个 db 中的所有租户与每个租户的 db 之间的优缺点是什么?
我们可以同时创建和使用的数据库数量是否有限制?
couchdb - 具有部分读者访问权限的 Couchapp
在 Cloudant 上运行完整的 couchapp 会非常优雅,但似乎无法创建公共登录页面,而数据库的其余部分需要身份验证。
我可以在不打开整个数据库的情况下提供公共页面吗?
谢谢,米克尔