0

假设我有以下数据:

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

我想要一个查询来返回每个标签的使用次数。在这种情况下,标签“foo”被使用了 4 次,“bar”被使用了 3 次。我猜聚合函数会在这里帮助我,但不确定如何。请帮我举个例子!

谢谢大师!

4

1 回答 1

0

弄清楚了 :)

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

不过,如果有人知道更有效的方法,我不介意:)

于 2013-10-03T23:03:01.467 回答