Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用reduce函数和startkey/endkey的Couchdb过滤结果_Javascript_Couchdb_Pouchdb - Fatal编程技术网

Javascript 使用reduce函数和startkey/endkey的Couchdb过滤结果

Javascript 使用reduce函数和startkey/endkey的Couchdb过滤结果,javascript,couchdb,pouchdb,Javascript,Couchdb,Pouchdb,我有这样设置的文档: { _id: 1, name: "A", timestamp: 1478115739, type: "report" } { _id: 2, name: "B", timestamp: 1478103721, type: "transmission" } { _id: 3, name: "C", timestamp: 1473114714, type: "report" } 我试图创建一个只返回特定时间戳范围内的文档的视图。我也希望能够按类型进行过滤 下面是我对数据的ja

我有这样设置的文档:

{ _id: 1, name: "A", timestamp: 1478115739, type: "report" }
{ _id: 2, name: "B", timestamp: 1478103721, type: "transmission" }
{ _id: 3, name: "C", timestamp: 1473114714, type: "report" }
我试图创建一个只返回特定时间戳范围内的文档的视图。我也希望能够按类型进行过滤

下面是我对数据的javascript调用:

db.query('filters/timestamp_type', { startKey: 1378115739, endKey: 1478115740  })
.then(function(resp) {
    //do stuff
})
我只知道把开始和结束的时间戳放在哪里。我很难弄清楚我想说的是我只想要报告返回到哪里

此外,这是我的过滤器的映射函数,它显然还没有完成。我甚至不知道如何访问开始键和结束键

function (doc) {
  if(type == "report" && startKey >= doc.timestamp && endKey <= doc.timestamp)
    emit(doc._id, doc.name);
}

谢谢,如有任何帮助或指导,我们将不胜感激。

使用地图功能按特定类型获取报告-

查询视图时,仅返回“报告”类型的文档。如果需要支持多种类型,则必须为每种类型创建一个新视图

要查询此视图并指定开始和结束时间戳,只需将它们添加到查询中即可-

curl -XGET http://localhost:5984/<your-database>/_design/docs/_view/<your-view-name>?startkey="1478115739"&endkey="1478103721"
curl-XGEThttp://localhost:5984//_design/docs/_view/?startkey=“1478115739”&endkey=“1478103721”

使用映射功能按特定类型获取报告-

查询视图时,仅返回“报告”类型的文档。如果需要支持多种类型,则必须为每种类型创建一个新视图

要查询此视图并指定开始和结束时间戳,只需将它们添加到查询中即可-

curl -XGET http://localhost:5984/<your-database>/_design/docs/_view/<your-view-name>?startkey="1478115739"&endkey="1478103721"
curl-XGEThttp://localhost:5984//_design/docs/_view/?startkey=“1478115739”&endkey=“1478103721”

开始键和结束键如何知道查看时间戳字段?无法根据我的查询使一个视图与任何类型一起工作?您的视图将只发出时间戳字段。所以startkey、endkey和key参数只对发出的key:timestamp有效。谢谢@AlexisCôté的解释,所以如果我有50个类型,我必须创建50个视图?无法在单个视图中同时按时间戳开始/结束和类型进行排序?@bryan您可以将多个键作为一个数组发出,然后使用复杂键查询视图。在谷歌上查看或查找“复杂键”,你会发现大量信息。另一种选择是使用新的CouchDB Mango查询(仅适用于2.0)。@AlexisCôté我很难找到任何地方,用实际的map/reduce函数来解释这个过程。无论我走到哪里,人们都只是显示一个非常混乱的查询,没有任何解释。开始键和结束键如何知道如何查看时间戳字段?无法根据我的查询使一个视图与任何类型一起工作?您的视图将只发出时间戳字段。所以startkey、endkey和key参数只对发出的key:timestamp有效。谢谢@AlexisCôté的解释,所以如果我有50个类型,我必须创建50个视图?无法在单个视图中同时按时间戳开始/结束和类型进行排序?@bryan您可以将多个键作为一个数组发出,然后使用复杂键查询视图。在谷歌上查看或查找“复杂键”,你会发现大量信息。另一种选择是使用新的CouchDB Mango查询(仅适用于2.0)。@AlexisCôté我很难找到任何地方,用实际的map/reduce函数来解释这个过程。无论我走到哪里,人们都只是给出一个令人困惑的问题,没有任何解释。
curl -XGET http://localhost:5984/<your-database>/_design/docs/_view/<your-view-name>?startkey="1478115739"&endkey="1478103721"