mongodb mapreduce, aggregate, group 的类似功能
2015-12-25 18:49
573 查看
(1) 先定义map ,reduce函数
m = function () {
emit(this.carrier, this.impCount);
};
r = function (key, values) {
var x = 0;
values.forEach(function (v) {x += v;});
return x;
};
第一种命令,调用runCommand:
res = db.runCommand({
mapreduce:"test_table",
map:m,
reduce:r,
query : {
'$or' : [{'impCount': {'$gt' : 3}},{'impCount': {'$lt' : 16}}],
},
out:"students_res"
});
第二中命令, 调用 mapreduce函数:
res = db.test_table.mapReduce(m,r,{
query : {
'$or' : [{'impCount': {'$gt' : 3}},{'impCount': {'$lt' : 16}}],
},
out:"students_res"
} );
(2)
var key1 = { var1 : "$appid", var2 : "$os"}
var query1 = { '$or' : [{'impCount': {'$gt' : 3}},{'impCount': {'$lt' : 16}}] }
var sort1 = { carrier: -1 }
var limit = 3
db.test_table.aggregate(
[
{ $match: match1},
{ $group: { _id: key1 , ImpCount: { $sum: "$impCount" }, ClickCount:{$sum: "$clickCount" }}},
{ $sort: sort1},
{ $limit: limit }
]
);
(3)
var key1 = {'carrier' : true};
var query1 = { '$or' : [{'impCount': {'$gt' : 16}},{'impCount': {'$lt' : 3}}] };
db.test_table.group({
key : key1,
cond: query1,
reduce: function(obj,prev) { prev.msum += obj.impCount; },initial: {msum : 0}
}
);
m = function () {
emit(this.carrier, this.impCount);
};
r = function (key, values) {
var x = 0;
values.forEach(function (v) {x += v;});
return x;
};
第一种命令,调用runCommand:
res = db.runCommand({
mapreduce:"test_table",
map:m,
reduce:r,
query : {
'$or' : [{'impCount': {'$gt' : 3}},{'impCount': {'$lt' : 16}}],
},
out:"students_res"
});
第二中命令, 调用 mapreduce函数:
res = db.test_table.mapReduce(m,r,{
query : {
'$or' : [{'impCount': {'$gt' : 3}},{'impCount': {'$lt' : 16}}],
},
out:"students_res"
} );
(2)
var key1 = { var1 : "$appid", var2 : "$os"}
var query1 = { '$or' : [{'impCount': {'$gt' : 3}},{'impCount': {'$lt' : 16}}] }
var sort1 = { carrier: -1 }
var limit = 3
db.test_table.aggregate(
[
{ $match: match1},
{ $group: { _id: key1 , ImpCount: { $sum: "$impCount" }, ClickCount:{$sum: "$clickCount" }}},
{ $sort: sort1},
{ $limit: limit }
]
);
(3)
var key1 = {'carrier' : true};
var query1 = { '$or' : [{'impCount': {'$gt' : 16}},{'impCount': {'$lt' : 3}}] };
db.test_table.group({
key : key1,
cond: query1,
reduce: function(obj,prev) { prev.msum += obj.impCount; },initial: {msum : 0}
}
);
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- Hadoop_2.1.0 MapReduce序列图
- 如何在 Ubuntu 上安装 MongoDB
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- C#中使用1.7版本驱动操作MongoDB简单例子
- MongoDB系列教程(四):设置用户访问权限
- php实现的mongodb操作类实例
- 解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad file descriptor的错误
- 在PostgreSQL的基础上创建一个MongoDB的副本的教程
- java操作mongodb示例分享
- php对mongodb的扩展(初出茅庐)
- 作为PHP程序员应该了解MongoDB的五件事
- 基于MySQL到MongoDB简易对照表的详解
- MongoDB入门教程之C#驱动操作实例
- MongoDB为用户设置访问权限
- MongoDB db.serverStatus()输出内容中文注释
- MongoDB的一些常用查询方法