Javascript MapReduce上的Riak排序
我目前正在为Riak MapReduce查询的reduce阶段执行上述代码,但它没有按照timestamp key的值正确排序。你知道为什么吗 我使用的是Riak Python客户端,这是包含上述reduce步骤的完整代码:Javascript MapReduce上的Riak排序,javascript,python,sorting,mapreduce,riak,Javascript,Python,Sorting,Mapreduce,Riak,我目前正在为Riak MapReduce查询的reduce阶段执行上述代码,但它没有按照timestamp key的值正确排序。你知道为什么吗 我使用的是Riak Python客户端,这是包含上述reduce步骤的完整代码: function(values) { return values.sort( function(a, b) { return b['timestamp'] - a['timestamp']; } );
function(values) {
return values.sort(
function(a, b) {
return b['timestamp'] - a['timestamp'];
}
);
}
尝试将返回部分用方括号括起来,有效地返回结果数组
query = riak_client.add('bucket')
query.map("function(v) { var data = JSON.parse(v.values[0].data); if (data.item == 'A') { return [[v.key, data]]; } return []; }")
query.reduce("function(values) { return values.sort(function(a, b) { return b['timestamp'] - a['timestamp']; }); }")
for result in query.run():
print result
让它看起来像这样:
function(values) {
return values.sort(
function(a, b) {
return b['timestamp'] - a['timestamp'];
}
);
}
因此,我得到了大量奇怪的递归结果。你知道为什么吗?
b['timestamp']
应该是b[1]['timestamp']
,a['timestamp']
应该是a[1]['timestamp']
,根据Basho用户列表的回复:
function(values) {
return [values.sort(
function(a, b) {
return b['timestamp'] - a['timestamp'];
}
)];
}