MongoDB聚合查询怎么实现,有哪些方法
Admin 2022-05-28 群英技术资讯 1199 次浏览
这篇文章主要介绍“MongoDB聚合查询怎么实现,有哪些方法”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MongoDB聚合查询怎么实现,有哪些方法”文章能帮助大家解决问题。
MongoDB除了基本的查询功能之外,还提供了强大的聚合功能。
我们可以使用count, distinct, group, mapreduce, aggregate等方法实现聚合查询。
count
查询记录条数。
命令:
db.collectionName.count()
distinct
用来找出给定键的所有不同的值
命令:
db.collectionName(key)
group
分组查询。
参数说明:
key:用来分组文档的字段。
initial: 每组都分享一个”初始化函数“
$reduce: 执行的reduce函数,第一个参数是当前的文档对象,第二个参数是上一次function操作的累计对象,有多少个文档, $reduce就会调用多少次。
condition:(可选)执行过滤的条件
finalize:(可选)在reduce执行完成,结果集返回之前对结果集最终执行的函数。
MapReduce
命令:
db.runCommand(
{ mapreduce : 字符串,集合名,
map : 函数,见下文
reduce : 函数,见下文 [, query : 文档,发往map函数前先给过渡文档]
[, sort : 文档,发往map函数前先给文档排序]
[, limit : 整数,发往map函数的文档数量上限]
[, out : 字符串,统计结果保存的集合]
[, keeptemp: 布尔值,链接关闭时临时结果集合是否保存]
[, finalize : 函数,将reduce的结果送给这个函数,做最后的处理]
[, scope : 文档,js代码中要用到的变量]
[, jsMode : 布尔值,是否减少执行过程中BSON和JS的转换,默认true] //注:false时 BSON-->JS-->map-->BSON-->JS-->reduce-->BSON,可处理非常大的mapreduce,<br> //true时BSON-->js-->map-->reduce-->BSON
[, verbose : 布尔值,是否产生更加详细的服务器日志,默认true]
});
MongoDB中的MapReduce相当于关系数据库中的group by。
参数:
map函数:这个称为映射函数,里面会调用emit(key,value),集合会按照你指定的key进行映射分组。
reduce函数:这个称为简化函数,会对map分组后的数据进行分组简化,注意:在reduce(key,value)中的key就是emit中的key,vlaue为emit分组后的emit(value)的集合。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
mac本地连接mongodb连接失败解决方法:1、在Mac终端输入mongod开启服务,然后连接。2、在mongodb文件中启动服务,然后连接。
mongodb 排序内存限制问题如何解决?在对集合执行一个大排序操作(如聚合)时候,出现以下错误:(测试版本:MongoDB 3.0.6),那么这样的情况要如何解决呢?下面是解决办法:
mongodb存储文件的方法:mongodb中可以使用GridFS类来存储文件,主要存放在fs中,可以把文件存储为二进制格式。
打开mongodb数据库的方法:在cmd进入mongodb安装目录下的bin目录,然后执行“mongod -db:path D\mongod\data\db”命令即可打开。
这篇文章给大家分享的是一些MongoDB优化方法和MongoDB优化需要注意的地方,具有一定的参考价值,感兴趣的朋友可以看看,下面就跟随小编一起来看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008