CouchDB 文档更新处理程序(就地更新)

2024-03-18

http://wiki.apache.org/couchdb/Document_Update_Handlers http://wiki.apache.org/couchdb/Document_Update_Handlers

CouchDB(0.10 及更高版本)现在支持就地更新。我无法理解它是如何工作的。我尝试使用提供的示例,但无法使其工作。

有人可以提供一些用于访问就地更新的示例和 uri。

Thanks


示例函数in-place与其他中的“就地”更新不同 数据库。 CouchDB 仍然使用仅附加架构;文件更新 处理程序仍然创建新的文档修订版等。

尽管如此,更新处理程序仍然非常方便并且值得学习。

假设您有一个带有累加器的文档。你 想要通过一次 HTTP 查询在文档中累积一个整数,指定 使用增量值amount范围。考虑以下命令:

curl -X PUT http://localhost:5984/db
# Returns {"ok":true}

curl -H "Content-Type:application/json" -X POST http://localhost:5984/db/_bulk_docs -d @-
{"docs":
  [
    {"_id": "my_doc", "number": 23},
    {"_id": "_design/app",
      "updates": {
        "accumulate": "function (doc, req) {
                         var inc_amount = parseInt(req.query.amount);
                         doc.number = doc.number + inc_amount;
                         return [doc, \"I incremented \" +
                                      doc._id + \" by \" +
                                      inc_amount];
                       }"
      }
    }
  ]
}
# Returns [{"id":"my_doc","rev":"1-8c9c19a45a7e2dac735005bbe301eb15"},
#          {"id":"_design/app","rev":"1-83ec85978d1ed32ee741ce767c83d06e"}]

(请记住在 POST 中的 JSON 对象后面按文件结束符 ^D。)

接下来确认累积文件(my_doc) 存在:

curl http://localhost:5984/db/my_doc
# Returns {"_id":"my_doc","_rev":"1-8c9c19a45a7e2dac735005bbe301eb15",
#          "number":23}

现在您可以致电accumulate更新处理程序amount参数为 更新字段。

curl -X PUT \
 http://localhost:5984/db/_design/app/_update/accumulate/my_doc?amount=15
# Returns: I incremented my_doc by 15

curl http://localhost:5984/db/my_doc
# Returns {"_id":"my_doc","_rev":"2-<whatever>",
#          "number":38}

请注意,新的number值为 38,值为 23 + 15。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CouchDB 文档更新处理程序(就地更新) 的相关文章

  • 如何使用 JavaScript/jQuery 将新数据发布到 CouchDB

    我找到了答案here https stackoverflow com questions 2099728 how do i send an ajax request on a different port with jquery对于下面的问
  • 计算/异步数据获取

    我正在尝试创建简单的 Vue CouchDB 应用程序 使用 Vanilla JS 可以正常工作 但我无法通过 Promise 或异步函数从数据库获取数据到我的 vue 实例 这是我的代码 app html div table thead
  • CouchDB 中的树

    我是 CouchDB 新手 有一个问题 我正在使用父消息的 ID 作为属性来保存消息 消息还可以有一个 childMessage 作为父级 因此它看起来像一棵树 我如何查询所有孩子 包括孩子的孩子 谢谢 这是处理分层数据时常用的方法 htt
  • Zend 框架和 Couch DB

    Zend Framework 是否具有本机 Couch DB 支持 我只找到了 Matthew Weier O Phinney 的 Zend Couch http framework zend com wiki display ZFPROP
  • 适用于 Android 设备(和 iOS)的 CouchDB 安全性

    我刚刚完成了一篇 wiki 文章和博客文章CouchDB 的安全性 http wiki apache org couchdb Security Features Overview 现在我想知道这在 Android 中是如何完成的 Andro
  • 使用 Node.js 从 couchdb 检索所有文档

    我正在编写一个简单的测试应用程序来试验 node js 和 couchdb 的功能 到目前为止我很喜欢它 但我遇到了障碍 我已经广泛寻找 但似乎找不到答案 我的测试服务器 一个简单的地址簿 做了两件事 如果用户去localhost 8000
  • 如何在 couchdb 中索引多维数组

    我有一个多维数组 我想用 CouchDB 对其进行索引 实际上使用 Cloudant 我的用户有他们所属团队的列表 我想搜索找到该团队的每个成员 因此 获取所有具有 ID 为 79d25d41d991890350af672e0b76faed
  • CouchDB 视图:MapReduce 中可以接受多少处理?

    我一直在尝试使用 CouchDB 进行 MapReduce 一些示例显示了映射归约函数中可能存在的一些繁重逻辑 在一种特殊情况下 他们在映射内执行 for 循环 在发出您选择的文档之前 MapReduce 是否会在每个可能的文档上运行 如果
  • 通过flask/python在html中显示从couchDB附加的图像

    我正在使用 Flask 和 python 从 couchdb 获取图像附件 然后将图像传递到 imgurl html 进行显示 问题是我只得到这个 返回 0x103b9c0b8 gt 处的 couchdb http ResponseBody
  • 如何在 couchdb 中编写通配符搜索查询,其中名称如“a%”

    如何在 couchdb 中编写通配符搜索 我想在 sql 中编写与 LIKE 相同的查询 请帮助我 name arun surname mr name balu surname tp 我需要列出所有以 a 开头的名称 Thanks 在 co
  • 检索刚刚删除的文档

    我删除了一个文档 但我仍然可以在其中看到它 changes 这样我就可以看到最后一个有效的 rev 已删除 因此获取带有 id 和最后修订版本的文档只会返回 id 25efa4ec8489d8b89b34c5cad6000059 rev 3
  • CouchDB 对 _users 数据库的读/写限制

    我想限制用户权限 以便普通用户只能读 写自己的用户文档 我设法设置写入权限 以便用户只能编辑自己的文档 通过设计文档中的 validate doc update 函数 现在我只需限制用户查看用户列表或其他用户文档即可 如果我将数据库读取权限
  • 我们可以将 cassandra / couchdb / mongodb 与 Google App Engine 基础设施一起使用吗?

    无论如何 我们可以使用 Google App Engine 但不使用 google 的 bigtable 吗 就像存储我的数据一样 我更喜欢使用 cassandra 并且能够插入和拔出额外的数据库服务器 如果我想使用 CouchDb Mon
  • 将 Objective-C 对象序列化和反序列化为 JSON

    我需要将 Objective C 对象序列化和反序列化为 JSON 以存储在 CouchDB 中 人们是否有通用解决方案最佳实践的示例代码 我查看了一些 JSON 框架 它们都停留在 NSDictionary NSArray 级别 即很多框
  • 如何在couchdb中实现复杂的搜索过滤器?我应该避免暂时的观点吗?

    我想在网格中管理我的用户实体 我想对它们进行排序 并且我想为每一列都有一个搜索过滤器 我的动态生成的临时视图工作正常 function doc if doc type User Dynamic filters WHERE firstName
  • 库存管理系统的 SQL 与 NoSQL

    我正在开发一个基于 JAVA 的网络应用程序 主要目的是拥有在多个称为渠道的网站上销售的产品的库存 我们将担任所有这些渠道的管理者 我们需要的是 用于管理每个渠道的库存更新的队列 库存表 其中包含每个通道上分配的正确快照 将会话 ID 和其
  • PouchDB 身份验证:创建新的 CouchDB 用户

    我使用 PouchDB 身份验证插件 我喜欢它 然而 我对注册过程有点困惑 也许我没有以正确的方式使用它 我用它在我的 CouchDB 数据库中创建新用户 但我不明白为什么它与特定数据库关联 由于我在 CouchDB 用户的特定数据库之前创
  • 如何控制台登录 couchdb

    首先 我真的很喜欢使用 CouchDB 可以做的所有事情 我来自很多前端 JavaScript 我使用 console log 来执行大量调试和测试任务 我想知道如何 console log 或者 CouchDB 中可能有什么更好的调试方法
  • 是否有 NoSQL 解决方案的比较(在某些情况下哪个更好?)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当我在 Linux PHP 架构中构建基于密钥的归档应用程序时 我正在尝试了解有关 NoSQL 的更多信息 谁能解释一下主要解决方案
  • CouchDB 中的分页?

    我将如何实现分页所需的查询 基本上 当请求第 1 页时 获取前 5 个条目 对于第 2 页 获取接下来的 5 页 依此类推 我计划通过 couchdb python 模块使用它 但这不会对实现产生任何影响 The CouchDB 指南 ht

随机推荐