Javascript 如何在Mongo中访问group reduce返回的数据?

Javascript 如何在Mongo中访问group reduce返回的数据?,javascript,php,mongodb,Javascript,Php,Mongodb,我有一个JavaScript文件 var x = new Mongo('127.0.0.1:27017'); var db = x.getDB('user'); var r = db.runCommand({"group" : { "ns" : "track_user", "key" : {userId : 1}, "initial" : { count:0 }, cond: {

我有一个JavaScript文件

var x = new Mongo('127.0.0.1:27017');
var db = x.getDB('user');
var r = db.runCommand({"group" : {
                                "ns" : "track_user", "key" : {userId : 1}, "initial" : {
                         count:0 }, cond: {
                                        uri: {
                                            $regex: 'sm'
                                        } }, "$reduce" : function(doc, prev) {
                                            } } }       }});


while(r.hasNext()){
    rs = r.next();  
}       
我无法浏览group reduce返回的结果。 通过shell运行的groupreduce的输出类似于

{
    "retval" : [
        {
            "userId" : 0,
            "created" : "2013-08-08 11:32:15",
            "uri" : "abc.com",
            "uri_set" : [
                "xyz.com"
            ]
        },...

    ],
    "count" : 14,
    "keys" : 6,
    "ok" : 1
}
hasNext将错误作为

Sat Nov 23 00:53:40.351 JavaScript execution failed: TypeError: Object [object Object] has no method 'hasNext' at /var/www/admin/app/controllers/newjavascript1.js:L62

问题是
db.runCommand()
不返回游标,因此游标方法都无法处理它。返回的文档中嵌套了结果,因此必须以不同的方式处理数据

您应该能够使用
映射
每个
,具体取决于您尝试执行的操作:

var mySet = r.retval;

mySet.forEach( function(doc) {
    console.log( doc );
});
或者,不管你需要它做什么