我有一个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的组减少运行的输出类似于
{
"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()
不返回游标,因此游标方法都无法处理它。您返回的文档中嵌套了结果,因此必须以不同的方式处理数据。
您应该能够使用map
或each
,这取决于您尝试做什么:
var mySet = r.retval;
mySet.forEach( function(doc) {
console.log( doc );
});
或者,无论你需要它做什么。