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" } }
您可能感兴趣
- mongodb基本数据类型
- MongoDB命令与SQL语法对比
- mongodb索引的优化
- mongodb eval 执行服务器端脚本
- MongoDB 日志文件太大
- mongodb备份和还原
- docker怎么装mongodb(Docker 搭建集群MongoDB的实现步骤)
- MongoDB的where查询
- java连接mongodb(Docker连接mongodb实现过程及代码案例)
- mongodb python教程(python使用pymongo操作mongo的完整步骤)
- python mongodb 基本操作(Python使用pymongo库操作MongoDB数据库的方法实例)
- Mongodb数据导入导出
- mongodb常用命令的语法
- MongoDB中的索引的操作
- MongoDB的连接字符串
- MongoDB优化器profile
- 今天要吃什么(今天要吃什么菜)
- 三杨之一 南杨 杨溥 安贞履节,酿醴调羹,宰相之气(三杨之一南杨杨溥)
- 今天会下雨吗(今天会下雨吗小说)
- 追连续剧,品古今联4 明代三杨,联妙诗佳(追连续剧品古今联4)
- 三杨 共辅四朝帝王,构建明帝国内阁行政圈(三杨共辅四朝帝王)
- 红色文化进国企(红色文化进国企)
热门推荐
- div内容水平垂直居中的方法(不定宽高的文字在div中垂直居中实现方法)
- windows 安装解压版 mysql5.7.28 winx64的详细教程(windows 安装解压版 mysql5.7.28 winx64的详细教程)
- 移动web跨端开发领域(Web移动端布局那些事)
- dedecms自定义函数(DEDECMS相关文章以关键字相关的修改方法自定义函数)
- sql统计天数怎么算(SQL对数据进行按月统计或对数据进行按星期统计的实例代码)
- mysql删除数据库的命令(MySQL 线上数据库清理数据的方法)
- mysql锁机制图解(详解mysql 中的锁结构)
- docker load镜像报错(Docker load之后镜像名字为none问题解决方法)
- django自定义后台界面(Django csrf 两种方法设置form的实例)
- css边框设置颜色(CSS 制作带边框背景色透明的消息框)