多个键范围作为 CouchDB 视图的参数

2023-11-23

根本问题 - 假设我的文档有“类别” and 时间戳。如果我想要所有文件"foo"时间戳在过去两个小时内的类别,很简单:

function (doc) {
  emit([doc.category, doc.timestamp], null);
}

然后查询为

GET server:5894/.../myview?startKey=[foo, |now - 2 hours|]&endkey=[foo, |now|]

当我想要分类中的东西时,问题就来了foo or bar,在过去两个小时内。如果我不关心时间,我可以直接通过键集合来拉取。不幸的是,我没有这样的范围选项。

与此同时,我最终所做的是将时间戳四舍五入到两小时块,然后多路复用查询:

POST server:5894/.../myview
keys=[[foo, 0 hours], [foo, 2 hours], [bar, 0 hours], [bar, 2 hours]]

它可以工作,但如果我想返回很长一段时间(与块大小相关),就会变得混乱。

有没有办法将多个 startKey/endKey 对发送到视图,类似于可以为键发布的keys: [] 数组?


有一个 CouchDB 问题请求可以让您做到这一点。我已将一个简单的、无保证的 0.10.1 补丁附加到该票证上,该补丁可能适合您。它对我有用,让我可以做如下事情:

{
    "keys": [
        {
            "startkey": ["0240286524","2010","03","01"],
            "endkey": ["0240286524","2010","03","07",{}]
        },
        {
            "startkey": ["0442257276","2010","03","01"],
            "endkey": ["0442257276","2010","03","07",{}]
        }
    ]
}

在 POST 正文中,这让我可以获取某个日期范围内多个跟踪 ID 的所有数据。我打电话给group=true&group_level=1按跟踪 ID 对结果进行分组。更深的组级别将允许我通过跟踪 id|year、跟踪 id|year|month 等进行分组。

多个连接对我来说是不可扩展的开销,因为我希望同时连接 2000 个连接:)(不,新视图不是一个选项 - 我们已经有 400GB 的数据加一个视图!)

问题和补丁位于https://issues.apache.org/jira/browse/COUCHDB-523 .

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

多个键范围作为 CouchDB 视图的参数 的相关文章

  • couchdb 2.0安装错误

    我正在尝试按照以下指南在 ubuntu 服务器 14 04 上安装 couchdb2 0 http docs couchdb org en 2 0 0 install unix html http docs couchdb org en 2
  • startkey 和 endkey 在 CouchDB 中到底是如何工作的?

    我正在使用 CouchDB 中的位置数据库 我创建了一个视图 其中我的键是一个带有纬度和经度舍入值的数组 现在我根据以下条件进行选择 Startkey 52 34 4 883 Endkey 52 37 4 903 在这里 我预计只会收到纬度
  • 为每个 CouchDB 用户提供一个单独的数据库是一个好的做法吗?

    我对用户及其文档的结构有一些概念性问题 为 CouchDB 中的每个用户提供自己的保存文档的数据库是一个好习惯吗 我读到 couchDB 可以处理数千个数据库 并且每个用户拥有自己的数据库并不罕见 Reason 提出这个问题的原因是我正在尝
  • CouchDB 与 RDBMS 相比有何优势

    我听说过很多关于couchdb http couchdb apache org 最近 我对它提供的功能感到困惑 很难以严格的优势 劣势形式解释所有差异 我建议你自己尝试一下 CouchDB 您首先会注意到的是 初始使用期间的学习曲线与 RD
  • couchDB 中的链式映射/归约

    在 couchDB 中 我有一组如下所示的项目 为了示例而简化 id 1 date Jul 1 user user1 id 2 date Jul 2 user user1 id 3 date Jul 3 user user2 etc 我想获
  • 解决 Pouch Couch DB

    我正在开发一个离线工作的原型网站 该网站利用 Pouch DB 以便在上线时同步回服务器上的 CouchDB The Pouch DB 冲突指南 http pouchdb com guides conflicts html says 要解决
  • CouchDB - 创建或更新文档时触发代码

    我有一个在 CouchDB 中存储数据的页面 该页面直接通过 JavaScript 访问数据库 因此浏览器中没有隐藏太多逻辑 创建新文档时 有一些逻辑将数据元素提取到单独的字段中 以便可以搜索它们 创建或更新文档时是否可以在服务器上执行此逻
  • 如何在Fauxton中使用reduce

    我一直在关注一些 Couch 培训 但无法弄清楚如何在 Fauxton 中使用reduce 选择地图区域下方的 count 本身不会执行任何操作 我尝试将其添加到地图代码下方 但我想我需要以某种方式集成它 在我的示例中 我试图计算每个标签在
  • 包含修订历史记录的 CouchDB 视图

    我对 CouchDB 很陌生 已经缺少 SQL 了 无论如何 我需要创建一个视图来发出文档的一些属性以及所有修订 ID 像这样的东西 function doc if doc type template emit doc owner id d
  • 通过flask/python在html中显示从couchDB附加的图像

    我正在使用 Flask 和 python 从 couchdb 获取图像附件 然后将图像传递到 imgurl html 进行显示 问题是我只得到这个 返回 0x103b9c0b8 gt 处的 couchdb http ResponseBody
  • 有没有集成CouchDb和Solr的项目?

    我希望能够使用 Solr 搜索 CouchDB 数据库 有没有提供这样的集成的项目 我还知道 CouchDB Lucene 有没有办法让 Solr 融入其中 Thanks 考虑到它是多么容易 自己推出会更有意义 首先 您需要决定使用哪种 S
  • CouchDB 备份和克隆数据库

    我们正在寻找 CouchdDB 作为类似 CMS 的应用程序 围绕备份我们的生产数据库有哪些常见模式 最佳实践和工作流程建议 我对克隆数据库以用于开发和测试的过程特别感兴趣 仅从实时运行的实例下复制磁盘上的文件就足够了吗 您可以在两个实时运
  • CouchDB 和 Couchbase 有什么区别?

    之间有什么本质区别吗CouchDB http couchdb apache org and 沙发底座 http www couchbase com 我认为CouchDB和Couchbase Server之间有一些本质的区别需要指出 我不会写
  • 使用 CouchDB 视图替换 SQL 中的多个联接

    我正在为我的应用程序实现过滤功能 但在 CouchDB 上编写视图时遇到问题 在 SQL 中 这将是一个具有多个连接的语句 如何替换 CouchDB 中的多重连接 本文涵盖单连接 http www cmlenz net archives 2
  • 本地实例不支持 couchdb POST 方法

    我的本地 couchdb 实例似乎不支持 POST 方法 这是我从 chrome 开发工具得到的答案 POST http localhost 5984 epos couch design epos couch view ri 415 Uns
  • 具有多个键值的 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 中可能有什么更好的调试方法
  • 是否有 NoSQL 解决方案的比较(在某些情况下哪个更好?)[关闭]

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

    我如何处理 couchdb 中的读取身份验证 我知道角色可以在单独的数据库中定义 但我想在文档级别实现读取身份验证 我正在考虑使用node js 但它似乎不是一个优雅的解决方案 因为couchdb也有一个http服务器 我不想再添加一个 或
  • 如何防止 CouchDB 在更新简单计数器时创建文档修订

    我想将计数器存储在 CouchDB 文档中 并在每个页面视图上递增 CouchDB 将创建本文档的完整修订版 只需 1 次计数器更新 这样会不会占用太多空间 考虑到我一天的点击量为 100 万次 我一天内可能会查看该文档的 100 万次修订

随机推荐