我有一个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运行的group reduce的输出类似于
{
"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
请尽快帮助。
答案 0 :(得分:0)
问题是db.runCommand()
没有返回游标,因此没有任何游标方法可以对它起作用。您将返回嵌套在里面的结果的文档,因此您将不得不以不同的方式处理数据。
您应该可以使用map
或each
,具体取决于您要执行的操作:
var mySet = r.retval;
mySet.forEach( function(doc) {
console.log( doc );
});
或者,无论你需要做什么。