无法让这个工作..我在这里缺少什么.. 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);
});
答案 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');