Couchbase-使用特定键使用复合键查询简化视图
我正在尝试获取特定用户的最后10个事务 例如,我有以下文件:Couchbase-使用特定键使用复合键查询简化视图,couchbase,Couchbase,我正在尝试获取特定用户的最后10个事务 例如,我有以下文件: { "user": 1, "date": 1442408126 } { "user": 1, "date": 1442408130 } { "user": 1, "date": 1442408140 } { "user": 2, "date": 1442408126 } 我定义了这个观点: // MAP: function (doc, meta) { if(meta.type == "json") { if(doc.us
{ "user": 1, "date": 1442408126 }
{ "user": 1, "date": 1442408130 }
{ "user": 1, "date": 1442408140 }
{ "user": 2, "date": 1442408126 }
我定义了这个观点:
// MAP:
function (doc, meta) {
if(meta.type == "json") {
if(doc.user && doc.date) {
var eventKey = dateToArray(new Date(parseInt(doc.date)));
eventKey.unshift(doc.user);
emit(eventKey, {"date":doc.date});
}
}
}
// REDUCE:
function(key, values, rereduce) {
return values.slice(0,10);
}
当reduce=true
和group_level=1
时,这就是结果(这是好的):
现在,当我用startKey=[1]
和endKey=[2]
查询视图时(stale=false&startKey=%5B1%5D&endKey=%5B2%5D&group=true&group\u level=1&reduce=true&connection\u timeout=60000&limit=10&skip=0),我得到了我想要的行:
Key Value
[1] [ { "date": 1442408140 }, { "date": 1442408130 }, { "date": 1442...
但是,我想使用key=[1]而不是进行范围搜索
当我使用key参数(stale=false&group=true&group\u level=1&key=%5B1%5D&reduce=true&connection\u timeout=60000&limit=10&skip=0)时,我得到一个空结果
使用带有inclusive\u end=true的startKey=[1]
和endKey=[1]
也会返回一个空列表
我做错了什么?对于Couchbase,请相信有一个内置的“计数”函数,可以自动处理重新计数,以便获得结果集中所有项目的计数,而不是缩减集的计数
可以参考文档页面上的。对于Couchbase,请相信有一个内置的“计数”函数可以自动处理重新计数,以便您获得结果集中所有项目的计数,而不是缩减集的计数
可以参考文档页上的。找到了答案:使用具有复杂键的视图时,不能在查询中使用“键”参数。在这种情况下,我们必须使用startKey和endKey,而endKey与startKey相同,但在末尾添加了一个空对象。例如,startKey=[1],endKey=[1,{}]
此处有更多详细信息:找到了答案:使用具有复杂键的视图时,不能在查询中使用“key”参数。在这种情况下,我们必须使用startKey和endKey,而endKey与startKey相同,但在末尾添加了一个空对象。例如,startKey=[1],endKey=[1,{}]
此处有更多详细信息:如何使用关键参数?通过使用startKey[1]查询视图?不,我尝试使用“key=[1]”,但我不介意任何允许我通过特定键进行查询的解决方案。如何使用key参数?通过使用startKey[1]查询视图?不,我尝试使用“key=[1]”,但我不介意任何允许我通过特定键进行查询的解决方案。我不会得到项目计数,而是项目本身。实际上,我的问题不在于reduce函数,而在于通过特定键进行查询。我没有得到项目计数,而是项目本身。实际上,我的问题不是reduce函数,而是通过特定键进行查询。
Key Value
[1] [ { "date": 1442408140 }, { "date": 1442408130 }, { "date": 1442...