我正在尝试在Crossfilter中过滤两个维度。我有一个重复给定对象的数据数组:
{
"bioguide_id" : "O000167",
"first_name" : "Barack",
"last_name" : "Obama",
"party" : "Democrat",
"religion" : "United Church of Christ",
"pac_id" : "C00404145",
"pac_name" : "Mendocino County Democratic Central Committee",
"contribution_count" : 4,
"contribution_sum" : 1264,
"congress" : 110
}
我有以下查询来完成crossfilter工作:
var contributions = data.dimension(function(c) { return c.contribution_sum; });
contributions.top(3).forEach(function(p, i) {
console.log(p.pac_name + " (" + p.congress + ")" + ": $" + p.contribution_sum);
});
但是,如何从Y contribution_sum
获取前X congress
?我尝试了以下内容无效:
var congress = data.dimension(function(c) { return c.congress; });
congress.filter(111).group().order(function(c) { return c.contribution_sum; }).top(3).forEach(function(p, i) {
console.log(p.pac_name + " (" + p.congress + ")" + ": $" + p.contribution_sum);
});
对于为什么有任何想法?
答案 0 :(得分:1)
我相信你会希望过滤你的'congress'维度,然后请求'contrib_sum'维度的顶级成员:
var congress = data.dimension(function(c) { return +c.congress; });
var contributions = data.dimension(function(c) { return +c.contribution_sum; });
congress.filter(111);
contributions.top(3).forEach(function(p, i) {
console.log(p.pac_name + " (" + p.congress + ")" + ": $" + p.contribution_sum);
});
完成JSFiddle:http://jsfiddle.net/eWr8Z/5/