MongoDB groupe par tableau intérieure-éléments

J'ai une liste d'articles, et chacun d'eux a une propriété de tableau qui répertorie les différentes personnes mentionnées à eux:

_id: {
    $oid: "52b632a9e4f2ba13c82ccd23"
},
providerName: "The Guardian",
url: "http://feeds.theguardian.com/c/34708/f/663860/s/3516cebc/sc/38/l/0L0Stheguardian0N0Cmusic0C20A130Cdec0C220Cwaterboys0Efishermans0Eblues0Etour0Ehammersmith/story01.htm",
subject: "The Waterboys – review",
class_artist: [
    "paul mccartney"
]

J'ai essayé (en vain) d'obtenir une liste de tous les artistes (class_artist), basé sur le nombre d'articles qu'ils ont été marquées dans les dans les 7 derniers jours.

J'ai été aussi loin que:

var date = new Date();
date.setDate(date.getDate() - 7);

db.articles.group({
    key: { class_artist: 1 },
    cond: { class_date: { $gt: date } },
    reduce: function ( curr, result ) { result.cnt++; },
    initial: { cnt : 0 }
}).sort({cnt: -1});

Mais malheureusement, il ne compte pas entre eux sur la base du tableau de valeurs, mais par la matrice de compositions (qui est, des listes d'artistes).

J'ai essayé d'utiliser le $unwind de la fonction, mais n'ont pas été en mesure de le faire fonctionner.

InformationsquelleAutor Gil Adirim | 2014-02-02