Riak Sort on MapReduce


function(values) { 
    return values.sort(
        function(a, b) {
            return b['timestamp'] - a['timestamp'];
        }
    );
}

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

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

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

让它看起来像这样:

function(values) { 
  return [values.sort(
    function(a, b) {
        return b['timestamp'] - a['timestamp'];
    }
  )];
}

相关内容

  • 没有找到相关文章

最新更新