在MongoDB组分组分析

在MongoDB组分组分析
由集团聚集有些复杂。首先选择是基于组密钥,然后mondb将采集到的基础上选定的关键值的差几组,然后你可以将文件在每一组中生成一个结果文件。

作为一个数据库,组通常用于统计。组mondb具有很大的局限性。例如,该结果集不可超过16M,集团化运作将不能处理超过10000个独特的钥匙。

组接受一些参数

1.key:用于组织文档和keyf必须有一个字段。

2.keyf:你可以接受一个Javascript函数。它是用来动态地确定数据包文件的领域,关键要有一个

初始化变量3。初始化:减少

4.reduce:reduce函数被执行,该函数需要返回值。

5.cond:执行过滤条件

6.finallize:一个函数,最后执行的结果集在减少完成,并将结果集returns.optional。

下面给出了一个示例。

首先插入测试数据:
对于(var i = 1;i < 20;i + +){
var = i % 6;
Db.test.insert({ _id:我的名字:user_+我,年龄:Num });
}

1。常见的分组查询
db.test.group({
键:{年龄:真},
初始值:{数字:0 },
为减少:功能(DOC,沪指){
上期数+ +
}
});

db.runcommand({组:
{
ns:测试
键:{年龄:真},
初始值:{数字:0 },
为减少:功能(DOC,沪指)
{
上期数+ +
}
}
});

2。筛选重组后
db.test.group({
键:{年龄:真},
初始值:{数字:0 },
为减少:功能(DOC,沪指)
{
上期数+ +
},
条件:{年龄:{ $ gt 2 }
});

db.runcommand({组:
{
ns:测试
键:{年龄:真},
初始值:{数字:0 },
为减少:功能(DOC,沪指)
{
上期数+ + },
条件:{年龄:{ $ gt 2 }
}
});

3,常见的$在哪里查询:
Db.test.find({ $其中:函数(){()
返回这个。年龄> 2;
}
});

组合并$查询
db.test.group({
键:{年龄:真},
初始值:{数字:0 },
为减少:功能(DOC,沪指){
上期数+ +
},
条件:{ $位置:函数(){
返回这个。年龄> 2;
}
}
});

4。使用函数返回值分组。
/ /关注,美元的keyf指定函数必须返回一个对象
db.test.group({
keyf美元:功能(DOC){ return {年龄:医生年龄};},
初始:{ 0 } NUM,
为减少:功能(DOC,沪指){
上期数+ +
}
});

db.runcommand({组:
{
ns:测试
keyf美元:功能(DOC){ return {年龄:医生年龄};},
初始值:{数字:0 },
为减少:功能(DOC,沪指){
上期数+ + }
}
});

5。使用终结者
db.test.group({
keyf美元:功能(DOC){ return {年龄:医生年龄};},
初始值:{数字:0 },
为减少:功能(DOC,沪指){
上期数+ +
},
完成:功能(DOC){医生数= doc.num;删除文件。民;}
});

db.runcommand({组:
{
ns:测试
keyf美元:功能(DOC){ return {年龄:医生年龄};},
初始:{ 0 } NUM,
为减少:功能(DOC,沪指){
上期数+ + },
完成:功能(DOC){医生数= doc.num;删除文件。民;}
}
});

关于MapReduce

第一插入测试数据
对于(var i = 1;i < 21;i + +)
{
Db.test.insert({ _id:我的名字:'mm +我});
}

Db.runCommand(
{
MapReduce:测试,
图:函数(){发出(this.name.substr(0,3),这);},
减少:功能(关键,VAL){ return瓦尔斯{ 0 };}, / /注:VAL是一个对象而不是一个数组
'wq:
});
小心 uff1a

1.mapreduce根据发射功能的地图功能被称为第一个参数分组

2。只有当密钥按组密钥进行分组时,多个文档才能匹配,密钥和文档集合将由减函数处理:
Db.runCommand(
{
MapReduce:测试,
图:函数(){发出(this.name.substr(0,3),这);},
减少:功能(关键,VAL){ return'wq;},
'wq:
});

在MapReduce的执行命令,看看WQ表数据。
Db.wq.find()

{_id MM1
{_id :mm2
{_id :mm3
{_id MM4
{_id MM5
{_id MM6
{_id MM7
{_id mm8
{_id MM9
以上是本文的全部内容,希望大家能喜欢。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部