由集团聚集有些复杂。首先选择是基于组密钥,然后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
以上是本文的全部内容,希望大家能喜欢。