gpt4 book ai didi

couchdb - CouchDB View 中的范围键

转载 作者:行者123 更新时间:2023-12-04 06:28:15 25 4
gpt4 key购买 nike

我正在使用 CouchDB 来存储有关事件的数据。每个事件都有一个开始日期/时间和结束日期/时间。我现在想创建一个 View ,它允许我获取在特定日期/时间发生的所有事件的列表。但是事件没有单一的日期,它们可以跨越几天。

现在我不知道如何在我的 View 函数中反射(reflect)这一点。不幸的是,我需要分钟级别的粒度,因此每分钟发出一个 key 可能不是一个有效的解决方案。那我该怎么做呢?

提前致谢!

最佳答案

好吧,无论如何,这是一个解决方案!我刚刚和 CouchDB 的 Jan (Lehnardt) 打了一架,他告诉我我可以 emit()在 map 中多次。直到现在我都不知道的事情。

为了方便我自己,我假设您的结束时间和开始时间已经是 TIMESTAMP 值。如果没有,您需要在 map 中转换它们或通常切换到它们。

我还将假设事件在整整一分钟(例如 16:51:00 )而不是在 16:51:23 开始.结束日期相同。

示例文档:

{
"_id" : "super-random-id",
"name" : "event 1",
"start" : "TIMESTAMP",
"end" : "TIMESTAMP"
}

这是 map :
function (doc) {
if (doc.start == undefined || doc.end == undefined) {
return;
}
var current = doc.start;
while (current <= doc.end) {
emit(current, doc.id);
current = current + 60; // increment by 1 minute
}
}

那么应该很容易用 startkey查询和 endkey .您可能可以添加 _list这里。

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

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