CouchDB在时间戳内获取结果
CouchDB get results within timestamp
我们有一个不错的小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结束。
当我组合键时,我不能使用该组
有其他办法解决这个问题吗
提前感谢您//乔纳斯
您应该在视图中发出时间戳,如下所示:
"by_timestamp": {
"map": "function(doc) {'n emit(doc.timestamp, doc._id);'n}"
}
而且,要获取特定时间戳范围内的数据,请在查询中使用startkey
和endkey
属性。从浏览器中,你可以做这样的事情,看看你是否得到了想要的结果。
http://127.0.0.1:5984/<DATABASE_NAME>/_design/<DESIGN_DOC_NAME>/_view/by_timestamp?startkey=1447255000&endkey=1447266000
如果这有帮助,请告诉我。
相关文章:
- 对象拟合:获取结果尺寸
- Mongodb$in以与数组中相同的顺序获取结果
- 获取结果未定义(主干.js)
- 无法从IE中的data.responseText获取结果,但在其他浏览器中工作
- 从sqlite数据库获取结果
- 谷歌地图-从连接的结果[1].formated_address中获取结果[0].formated_address
- 如何使用 HtmlUnit 从 JavaScript html 页面获取结果
- JS:如何从其函数中获取结果值
- GET 请求,但未在视图中获取结果
- 如何查询具有特定 id 的 json 文件并获取结果数组
- 从成功的AJAX帖子中获取结果,并使用globalEval设置HTML
- 如何使用 Parse.promise javascript 定义一个承诺数组并获取结果数组 [parse.com]
- 通过 javascript 从 LinkedIn API 获取结果
- Ajax 从 sql 查询中获取结果
- 如何在“node-mysql”查询中获取结果的值
- 如何先从Firebase获取结果,然后重定向到另一个页面
- 使用javascript从struts.xml获取结果
- 如何从请求主体获取结果
- 从nodejs中的第二个函数中获取结果
- Angularjs:无法迭代或从服务结果中获取结果