2013-10-03 3 views
0

Supposons que j'ai les données suivantes:Comment compter l'utilisation d'éléments dans mongodb avec une seule requête?

{_id: 1, tags: ['foo', 'bar']} 
{_id: 2, tags: ['bar',]} 
{_id: 3, tags: ['foo',]} 
{_id: 4, tags: ['bar', 'foo']} 
{_id: 5, tags: ['foo']} 

Je voudrais une requête pour renvoyer le nombre de fois que chaque balise est utilisée. Dans ce cas, l'étiquette "foo" a été utilisée 4 fois et "bar" a été utilisé 3 fois. Je suppose que les fonctions agrégées m'aideraient ici mais je ne sais pas comment. S'il vous plaît aidez-moi avec un exemple!

Merci les gourous!

Répondre

0

figured it out :)

db.test.aggregate({$unwind: "$tags"}, {$group: {_id: "$tags", total: { $sum: 1 }}}); 

Je ne me dérangerait pas si quelqu'un connaissait un moyen plus efficace si :)

Questions connexes