Перекрестный запрос

Можно ли отфильтровать набор данных перекрестного фильтра, который имеет массив в качестве значения?

Например, скажем, у меня есть следующий набор данных:

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"]
  }
];

Есть ли простой способ получить доступ к книгам, которые помечены определенным тегом? А также книги, которые есть у конкретного автора? То, как я понимаю, как использовать кроссфильтр, заставляет меня делать что-то вроде этого:

var filtered_data = crossfilter(data);
var tags = filtered_data.dimension(function(d) {return d.tags});
var tag = tags.group();

И тогда, когда я получаю доступ к группировке (например, так):

tag.all()

Я получаю это:

[{key: ["clojure", "lisp"], value: 1}, 
 {key: ["design patterns", "ruby"], value: 1}, 
 {key: ["ruby"], value: 1}]

Когда я предпочел бы это:

[{key: "ruby", value: 2}, 
 {key: "clojure", value: 1}, 
 {key: "lisp", value: 1},
 {key: "design patterns", value: 1}]

Ответы на вопрос(2)

Ваш ответ на вопрос