Mongo NodeJS map减少

时间:2012-07-27 08:04:51

标签: node.js mongodb mapreduce

无法让这个工作..我在这里缺少什么.. NodeJS,Mongoskin .. 我无法得到mapreduce的结果。数据库和集合似乎没问题。

var mongo = require('mongoskin');
var db = mongo.db('localhost:27017/testdb?auto_reconnect=true&poolSize=5');

db.collection('users');
db.bind('users');

db.users.find().sort({userid: -1}).skip(0).limit(0).toArray(function(err, users) {
        //console.log(err, users);
});

m = function() {
        emit( this.userid, this);
}
r = function(k, v) {
        return {k: v}
}
db.users.mapReduce(m, r, {out: 'coll'}, function(e, c) {
                console.log(c);
                process.exit(1);            
});

2 个答案:

答案 0 :(得分:8)

你需要传递地图并将函数作为字符串缩减为mongodb,以便它们在服务器中执行:

db.users.mapReduce(m.toString(), r.toString(), {out: 'coll'}, function(e, c) {
                console.log(c);
                process.exit(1);            
});

答案 1 :(得分:0)

我需要将连接字符串作为前缀:

var db = mongo.db('mongodb://localhost:27017/testdb?auto_reconnect=true&poolSize=5');