Est-il possible de filtrer un crossfilter jeu de données qui a un tableau comme valeur?
Par exemple, dire que j'ai le dataset suivant:
var data = [
{
bookname: "the joy of clojure",
authors: ["Michael Fogus", "Chris Houser"],
tags: ["clojure", "lisp"]
},
{
bookname: "Eloquent Ruby",
authors: ["Russ Olsen"],
tags: ["ruby"]
},
{
bookname: "Design Patterns in Ruby",
authors: ["Russ Olsen"],
tags: ["design patterns", "ruby"]
}
];
Est-il un moyen facile d'accéder à des livres qui sont marqués par une étiquette spécifique? Et aussi les livres qui ont un auteur particulier? La façon dont je le comprends comment utiliser crossfilter jusqu'à présent, a moi de faire quelque chose comme ceci:
var filtered_data = crossfilter(data);
var tags = filtered_data.dimension(function(d) {return d.tags});
var tag = tags.group();
Et puis quand j'ai accès au groupement (comme):
tag.all()
J'obtiens ceci:
[{key: ["clojure", "lisp"], value: 1},
{key: ["design patterns", "ruby"], value: 1},
{key: ["ruby"], value: 1}]
Quand je préférerais avoir ceci:
[{key: "ruby", value: 2},
{key: "clojure", value: 1},
{key: "lisp", value: 1},
{key: "design patterns", value: 1}]