问题标签 [couchdb-python]

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 投票
2 回答
127 浏览

couchdb - couchdb 主键解决方法

我正在寻找 couchdb 中主键功能的解决方法。我正在将 json 格式的文档保存到外部的 couchdb 中。有没有简单的方法来检查特定字段的值是否存在?

0 投票
1 回答
289 浏览

couchdb - 使用视图时在 couchdb 中导出数据

所以我是 CouchDB 的新手,我正在尝试编写一些 python 程序来上传 JSON 文件,上传 VIEW,然后返回数组中的值。

我把视图写成if(doc['city.berlin']) emit(doc['city.berlin'], doc['city.berlin'])

那么将数据提取到数组中的最佳可能性是什么?

目前终端中的返回数据看起来太复杂了,因为它正在返回 {ID, key, value}。有没有一种简单的方法来只保存值?

谢谢

0 投票
1 回答
128 浏览

python - 使用 CouchDB-Python 批量取消删除 CouchDB 文档

我不小心删除了 CouchDB 数据库中的所有文档,我想取消删除它们。

CouchDB 版本 = 2.2.0 Python = 2.7,我正在使用 python-couchDB 库。

当我调用 /couchip:5984/my_db 时,我的 CouchDB 没有进行任何压缩,并且 doc_del_count 中列出了 1260 个文档

我按照这里的指示: 检索刚刚删除的文档

并像这样在Python中调整它:

我从这里开始打印 old_doc,大多数时候,它返回一个 NoneType 但我确实看到有些正在打印出我想要恢复的文档,所以我将它添加到代码中:

这不起作用,没有任何东西恢复到我的数据库中。现在,当我尝试查看这些文档的所有修订版时,当我调用 old_doc 时,我似乎只能返回 NoneType。我尝试像这样遍历所有修订:

docs_to_put_back 返回一个空列表。据我了解,如果我的数据库没有压缩,如果我有旧的修订号,我应该能够获取旧文档。但是,从我一直在阅读的内容来看,情况似乎并非如此。

我也尝试过先将文档放回数据库,然后尝试使用 curl 获取旧的修订号,如下所示:

我被灌醉了吗?CouchDB 是否无法访问所有旧版本(我读过的内容有点用词不当)?

这不是我最好的一天,所以如果你能帮忙,那就太棒了!谢谢!

0 投票
1 回答
154 浏览

python - 使用 couchdb-python 处理嵌套对象

免责声明:Python 和 CouchDB 对我来说都是新的。到目前为止,我的“编程”主要由 Bash 脚本组成。

我正在尝试创建一个小脚本来更新 CouchDB 数据库中的对象。然而,这些对象不是由我的脚本创建的,而是由一个名为 Tap Forms 的应用程序创建的,该应用程序使用 CouchDB 进行同步。基本上我正在尝试自动更新应用程序的内容。这也意味着我不能真正影响 CouchDB 中对象的结构或名称。

数据库主要填充这种结构的对象:

我稍微缩短了数字并删除了一些条目以增加可读性。

现在我试图更新的实际值在"values" : {...}数组中(或者对象,或者列表,我猜我对 JSON 也没有太多经验)。正如我知道其中一些值一样,我设法创建了在服务器上查找对象的 _id 的视图。然后我使用文档中描述的 python-couchdb 模块:

这给了我对象。但是,我想更新values数组中的一个值,比如说。但是怎么做?使用更新整个数组。我尝试了其他(看似合乎逻辑的)方法,但无法绕过它。我在任何文档中都找不到示例。fld-c3d4...doc['values'] = 'new_value'doc['values['fld-c3d4']'] = 'new_value'

0 投票
1 回答
100 浏览

database - CouchDB 永久认证密钥

我们正在移动和更新我们的数据库,因为它是到期的,但是我们有一个关于身份验证的问题。我们只想使用身份验证密钥连接到数据库。

我们的旧 CouchDB 没有使用任何用户,所有数据库都是公共的(没有用户权限或类似的东西)。它工作正常,但这不是我们想要的。

现在,使用我们的“新”CouchDB,我们希望仅使用身份验证密钥建立连接,但看起来所建立的会话已过期,我们无法找到永久使用令牌的方法。

对于上下文,我将 couchdb-python 用于我的工具,我找到了一些方法来启动会话并获取 cookie,因此是身份验证密钥,但要么是通过 couchdb-python 要么是网络平台(Fauxton 我认为它是调用),到期时间仍然存在,超时后(如下所示)会话确实到期。

下面是我们的 local.ini。我们试图同时添加两者required_valid_user = falseallow_persistent_cookies = true但无济于事。

我很确定我们忽略了某些东西,或者我们没有正确理解。

有没有办法让身份验证密钥成为永久的?