mongodb group分组
类别:数据库 浏览量:19521
时间:2013-8-25 mongodb group分组
mongodb group分组
和数据库一样group常常用于统计。MongoDB的group还有很多限制,如:返回结果集不能超过16M, group操作不会处理超过10000个唯一键,好像还不能利用索引[不很确定]。
一、Group大约需要一下几个参数。
1.key:用来分组文档的字段。和keyf两者必须有一个
2.keyf:可以接受一个javascript函数。用来动态的确定分组文档的字段。和key两者必须有一个
3.initial:reduce中使用变量的初始化
4.reduce:执行的reduce函数。函数需要返回值。
5.cond:执行过滤的条件。
6.finallize:在reduce执行完成,结果集返回之前对结果集最终执行的函数。可选的。
二、下面介绍一个实例:
有关MapReduce
for(var i=1;i<21;i++)
{
db.test.insert({_id:i,name:'mm'+i});
}
//进行mapreduce
db.runCommand(
{
mapreduce:'test',
map:function(){emit(this.name.substr(0,3),this);},
reduce:function(key,vals){return vals[0];}, //注意:vals是一个Object对象而不是数组
out:'wq'
});
注意:
1.mapreduce是根据map函数里调用的emit函数的第一个参数来进行分组的
2.仅当根据分组键分组后一个键匹配多个文档,才会将key和文档集合交由reduce函数处理。例如:
db.runCommand(
{
mapreduce:'test',
map:function(){emit(this.name.substr(0,3),this);},
reduce:function(key,vals){return 'wq';},
out:'wq'
});
执行mapreduce命令后,再查看wq表数据:
{ "_id" : "mm1", "value" : "wq" }
{ "_id" : "mm2", "value" : "wq" }
{ "_id" : "mm3", "value" : { "_id" : 3, "name" : "mm3" } }
{ "_id" : "mm4", "value" : { "_id" : 4, "name" : "mm4" } }
{ "_id" : "mm5", "value" : { "_id" : 5, "name" : "mm5" } }
{ "_id" : "mm6", "value" : { "_id" : 6, "name" : "mm6" } }
{ "_id" : "mm7", "value" : { "_id" : 7, "name" : "mm7" } }
{ "_id" : "mm8", "value" : { "_id" : 8, "name" : "mm8" } }
{ "_id" : "mm9", "value" : { "_id" : 9, "name" : "mm9" } }
您可能感兴趣
- java连接mongodb(Docker连接mongodb实现过程及代码案例)
- mongodb eval 执行服务器端脚本
- mongodb常用命令的语法
- MongoDB聚合函数
- mongodb python教程(python使用pymongo操作mongo的完整步骤)
- mongodb连接池
- mongodb insert操作
- python mongodb 基本操作(Python使用pymongo库操作MongoDB数据库的方法实例)
- Mongodb数据导入导出
- mongodb中mapreduce实例
- docker中的mongodb(Docker mongoDB 4.2.1 安装并收集springboot日志的步骤详解)
- mongodb query查询
- mongodb索引的优化
- MongoDB中的索引的操作
- MongoDB的连接字符串
- MongoDB的where查询
- 哪版孙悟空最萌 黄渤躺萌了(哪版孙悟空最萌)
- 融入小人物的喜怒哀乐,黄渤饰演的角色为什么让人观看时欲罢不能(融入小人物的喜怒哀乐)
- 《极限挑战》深访都市夜归人,夜间打工者体验,黄磊录完憔悴了(极限挑战深访都市夜归人)
- Google 推出了一个游戏生成器,让不会编程的你也能自己设计游戏(推出了一个游戏生成器)
- 二胎家庭老大爱闹情绪,用这招很有效(二胎家庭老大爱闹情绪)
- 一个30岁男人外遇失败的全过程(一个30岁男人外遇失败的全过程)
热门推荐
- python中lambda教程(浅析python的Lambda表达式)
- dedecms安全设置(织梦dedecms站点data目录位置变动调整验证码不显示的解决办法)
- sql server2008如何升级到2012(MS sqlserver 2008数据库转换成2000版本的方法)
- js弹出新窗口被拦截的解决方法
- Javascript计算密码的强度
- python怎么用pandas读取两列数据(python 利用pandas将arff文件转csv文件的方法)
- opencv抠出边缘检测的图形(python opencv实现图像边缘检测)
- css实现颜色渐变动画效果(CSS实现文字高光水波渐变的动态效果实例)
- mysql如何使用临时表(MySQL中临时表的使用示例)
- 如何用python编写抽奖(详解用python写一个抽奖程序)