gpt4 book ai didi

javascript - CouchDB 在时间戳内获取结果

转载 作者:行者123 更新时间:2023-11-28 06:42:44 25 4
gpt4 key购买 nike


我们有一个很好的小 CouchDB 正在运行,为使用我们网站的人存储一些用户习惯数据。
示例条目如下所示:

{
"_id": "5a2711671b321c6295acfe04700e3d32",
"_rev": "1-a74c2d88a8277d9ad7ceb74406c9bb9e",
"search_term": "dream_theater",
"timestamp": 1447255047,
"session_id": "qjrsh7cq10oa9m1mebdikdcvg3",
"ip_address": "THE IP",
"browser": "Safari",
"browser_version": "9.0.1",
"platform": "Macintosh",
"service": [
],
"content_type": [
],
"language": "en",
"limit": 100
}

现在我编写了几个 MapReduce 函数来访问此习惯数据并从中提取信息。一个例子如下:

"by_platform_browser": {
"map": "function(doc) { if (doc.browser && doc.platform) emit([doc.platform, doc.browser], 1) }",
"reduce": "function(keys, values, rereduce) { return sum(values) }"
}

这会返回一些像这样的东西(group=true):

{"rows":[
{"key":["Linux","Chrome"],"value":198},
{"key":["Linux","Firefox"],"value":129},
{"key":["Macintosh","Chrome"],"value":36},
{"key":["Macintosh","Safari"],"value":135},
{"key":["Windows","Chrome"],"value":37}
]}

如您所见,每个习惯数据文档中都有一个时间戳字段。
现在我的问题本身:
我怎样才能在给定的时间内收集数据。比如从纪元 1447255000 开始,到 1447266000 结束。
当我组合按键时,我无法使用该组。
还有其他方法可以解决这个问题吗?
提前非常感谢!//乔纳斯

最佳答案

您应该在 View 中发出时间戳,如下所示:

"by_timestamp": {
"map": "function(doc) {\n emit(doc.timestamp, doc._id);\n}"
}

并且,要获取特定时间戳范围之间的数据,请在查询中使用 startkeyendkey 属性。从浏览器中,您可以执行类似的操作,看看是否获得了所需的结果。

http://127.0.0.1:5984/<DATABASE_NAME>/_design/<DESIGN_DOC_NAME>/_view/by_timestamp?startkey=1447255000&endkey=1447266000

请告诉我这是否有帮助。

关于javascript - CouchDB 在时间戳内获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33654258/

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