mongodb 怎么 对类型为list的字段的值进行汇总统计
mongodb中有一个字段为list类型
如下,tags
想要对tags内的'a、b、c、d'其进行计数统计
{'_id':ObjectId('594e473dd746002ad0464b36'),'tags':['a','b','d']}
{'_id':ObjectId('59637962d7460028c05590ef'),'tags':['a','c','d']}
{'_id':ObjectId('59637962d7460028c0558ff6'),'tags':['c','d']}
统计tags内的'a','b','c','d'每个都出现了几次。
期待的结果
[{'name':'a','count':2},
{'name':'b','count':1},
{'name':'c','count':2},
{'name':'d','count':3}]
该怎么写这个查询语句呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
数据源
SQL
结果
如果你要将查询结果的_id字段名改为name,那么就要再加个$project
$unwind
,$group
,$project
都是很常用的运算符,先查下文档看咯,不懂再说。感觉写个脚本遍历比较方便,单靠写查询应该很难。
改正下
@张淞
大哥的答案,$group 阶段的count:1
应改为count:{ $sum:1}