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 文档更新处理程序(就地更新) 的相关文章

  • 哪一个 NoSQL 数据库(如果有)可以为查询结果集提供*更改*流?

    哪个 NoSQL 数据库 如果有的话 可以提供changes到查询结果集 有人能给我举一些例子吗 首先 我相信没有一个 SQL 数据库提供此功能 我是对的吗 我需要能够指定任意 简单的查询 其在 SQL 中的等价形式可以写成 SELECT
  • NoSQL 数据库中的全文搜索 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这里有人有部署真正的在线系统的经验吗 该系统在任何 NoSQL 数据库中进行全文搜索 例如 全文搜索在 MongoDB Riak 和
  • bigtable、cassandra、simpledb、dynamo、couchdb、hypertable、riak、hbase,它们有什么共同点?

    抱歉 如果这个问题有点主观 我对 可以存储 分布式存储 或类似的概念很陌生 我真的很想知道它们有什么共同点 并希望对它们有一个总体的了解 如果我想写一个类似这样的产品 我需要准备什么 The NoSQL 数据库站点 http nosql d
  • 解决 Pouch Couch DB

    我正在开发一个离线工作的原型网站 该网站利用 Pouch DB 以便在上线时同步回服务器上的 CouchDB The Pouch DB 冲突指南 http pouchdb com guides conflicts html says 要解决
  • 如何在Fauxton中使用reduce

    我一直在关注一些 Couch 培训 但无法弄清楚如何在 Fauxton 中使用reduce 选择地图区域下方的 count 本身不会执行任何操作 我尝试将其添加到地图代码下方 但我想我需要以某种方式集成它 在我的示例中 我试图计算每个标签在
  • PouchDB:过滤、排序和分页

    与这两个 CouchDB 问题非常相似 3311225 https stackoverflow com questions 3311225 couchdb sorting and filtering in the same view and
  • 如何从浏览器上传文件(附件)?

    我无法上传附件以使浏览器正常工作 一些提示是here http japhr blogspot de 2010 02 how to upload files in couchapp html 其他的there http comments gm
  • 如何在 couchdb 中索引多维数组

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

    我想查询 CouchDB 并且我有一个特定的需求 我的查询应该返回与此条件相对应的文档的名称字段 id 等于或包含在文档归档 列表 中 例如 字段输出如下 output doc s100 doc s101 doc s102 doc s103
  • CouchDB 入门

    我已经在我的 Linux 云服务器上安装了 CouchDB 并且我正在尝试访问 Futon 欢迎屏幕 O Reilly 书中说要转到 127 0 0 1 portnum 但我不在本地主机上工作 它是我的远程服务器 所以我应该能够使用 xxx
  • CouchDB 和 Couchbase 有什么区别?

    之间有什么本质区别吗CouchDB http couchdb apache org and 沙发底座 http www couchbase com 我认为CouchDB和Couchbase Server之间有一些本质的区别需要指出 我不会写
  • CouchDB“加入”两个文档

    我有两个看起来有点像这样的文档 Doc id AAA creator id data DataKey id credits left 500 times used 0 data id AAA 我想要做的是创建一个视图 它允许我传递 Data
  • 本地实例不支持 couchdb POST 方法

    我的本地 couchdb 实例似乎不支持 POST 方法 这是我从 chrome 开发工具得到的答案 POST http localhost 5984 epos couch design epos couch view ri 415 Uns
  • 创建和使用 Android 的 ContentProvider

    当我调用 Android ContentProvider 时 出现以下异常 java lang RuntimeException 无法 开始活动 ComponentInfo de harm android couchone de harm
  • 具有多个键值的 CouchDB 视图查询

    我目前正在尝试创建一个视图和查询来适应此 SQL 查询 SELECT FROM articles WHERE articles location NY OR articles location CA ORDER BY articles re
  • 如何控制台登录 couchdb

    首先 我真的很喜欢使用 CouchDB 可以做的所有事情 我来自很多前端 JavaScript 我使用 console log 来执行大量调试和测试任务 我想知道如何 console log 或者 CouchDB 中可能有什么更好的调试方法
  • 如何导入 nano (couchdb) - typescript

    我在节点应用程序中导入和使用 nano 时遇到问题 js 方式 来自文档 是 var nano require nano http localhost 5984 我该如何用打字稿做到这一点 I tried import as Nano fr
  • CouchDB .view 文件增长失控?

    我最近遇到一种情况 我的 CouchDB 实例使用了 20GB VM 实例上的所有可用磁盘空间 经过调查 我发现 usr local var lib couchdb 中的一个目录包含一堆 view 文件 其中最大的有 16GB 我能够删除
  • 从 CouchDB 检索分层/嵌套数据

    我对 couchDB 很陌生 甚至在阅读之后 最新存档现已删除 http wiki apache org couchdb How to store hierarchical data 通过 将每个节点的完整路径存储为该节点文档中的属性 ht
  • 如何删除带有空“”文档 ID 的 couchdb 文档?

    我在数据库中看到的文档是这样的 id rev 1 2f11e026763c10730d8b19ba5dce7565 禁止 必须提供最新的 rev以更新现有包 我在文档中看到的所有内容都显示引用带有 ID 的文档 但这当然不可能发生 我不太确

随机推荐