2

无法正常工作..我在这里缺少什么..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);            
});
4

2 回答 2

8

您需要将 map 和 reduce 函数作为字符串传递给 mongodb,以便它们在服务器中执行:

db.users.mapReduce(m.toString(), r.toString(), {out: 'coll'}, function(e, c) {
                console.log(c);
                process.exit(1);            
});
于 2012-07-27T08:51:18.743 回答
-1

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

var db = mongo.db('mongodb://localhost:27017/testdb?auto_reconnect=true&poolSize=5');
于 2015-09-17T18:46:00.613 回答