站长网 系统 MongoDB聚合查询如何实现

MongoDB聚合查询如何实现

MongoDB聚合查询如何实现

这篇文章主要介绍“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)的集合。

现在大家对于MongoDB聚合查询怎么实现,有哪些方法的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/fuwuqi/xt/2024/0512/44610.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部