Javascript MapReduce上的Riak排序

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']; } );

我目前正在为Riak MapReduce查询的reduce阶段执行上述代码,但它没有按照timestamp key的值正确排序。你知道为什么吗

我使用的是Riak Python客户端,这是包含上述reduce步骤的完整代码:

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'];
    }
  )];
}