mongodb - 查找集合中某个字段的最大出现次数?
问题描述
我正在查看该站点,尽管它很愚蠢,但我没有找到解决方案。具有以下示例集合:
{
"_id" : ObjectId("5b61d710bb0d4d1e5191fe8c"),
"a" : [
"#asd",
"#qwerty",
"#special"
],
"_id" : ObjectId("5b61d69bbb0d4d1e5191fe8b"),
"a" : [
"#pretty",
],
"_id" : ObjectId("5b61d710bb0d4d1e5191fe8d"),
"a" : [
"#asd",
"#noun",
"#rework"
],
"_id" : ObjectId("5b61d710bb0d4d1e5191fe8e"),
"a" : [
"#asd"
]
}
如何获取a中出现次数最多的字符串?谢谢您的帮助。问候。
解决方案
您可以使用以下聚合查询。
$unwind
将数组减少为单个字符串,然后$sortbyCount
对出现的次数进行分组和计数,并按降序对出现的次数进行排序。
$limit
获得出现次数最多的值。
db.colname.aggregate([
{"$unwind":"$a"},
{"$sortByCount":"$a"},
{"$limit":1}
])
推荐阅读
- javascript - 我的函数无法返回我的 Firestore 数据
- python - 如何将 ubuntu 降级到 python 3.6?
- azure - 我们如何配置从基于 yaml 的 azure CI 管道的 Jfrog 工件中提取 npm 包?
- r - R 数据帧的匹配对
- javascript - 我的代码具有很高的复杂性。我怎样才能减少它?
- c - 我怎样才能把这个“for”循环翻译成一个“while”循环?
- templates - Symfony 4 Twig Set 背景图片不带附件
- javascript - 找到获得的价值我哪里错了?
- reactjs - 反应:路由器 props.match.params.id 未定义
- c - 链表递归函数