gpt4 book ai didi

couchdb - 多个键范围作为 CouchDB View 的参数

转载 作者:行者123 更新时间:2023-12-02 02:24:54 25 4
gpt4 key购买 nike

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

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

然后查询为

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

当我在过去两个小时内想要 foobar 类别中的某些内容时,问题就出现了。如果我不关心时间,我可以直接通过键集合来拉取。不幸的是,我没有这样的范围选项。

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

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

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

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

最佳答案

有一个 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 个连接:)(不,新 View 不是一个选项 - 我们已经有 400GB 的数据加一个 View !)

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

关于couchdb - 多个键范围作为 CouchDB View 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1468684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com