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