欢迎
我正在使用Mongo 3.0在机器上进行聚合
mongo ${DB_HOST_PORT}/${DATE} ${BASE_PATH}/temp/script.js > "${BASE_PATH}/temp/listofcampaigns.csv" --quiet
var cursor=db.getCollection('combined_data').aggregate([{"$match":{"src":"sender","customer":"test","name":"ntf_NotificationSent","time":{"$gte":"2016-11-23T00:00:00.000Z","$lt":"2016-11-23T01:00:00.000Z"}}},
{"$group":{"_id":{"campaign":"$spec:crm:cmp:campaign:id"},"count":{"$sum":1}}},{"$sort":{"count":-1}}]);
if (cursor && cursor.hasNext()) { print('campaign, count');
while ( cursor.hasNext() ) { var item = cursor.next(); print('' + item._id.campaign + ', ' + item.count); }}
它没有问题,但是,在我安装了TokuMX的机器上运行之后,我遇到了错误:
Wed Nov 23 14:13:06.443 TypeError:Object [object Object]没有 在(...)/ temp / script.js的方法'hasNext'无法加载: (...)/温度/的script.js
有人可以帮我吗? 或者也许有人有工作示例如何在TokuMX的机器上运行这种聚合?
结果文件应如下所示:
campaign, count
xyz, 5
yxz, 6
答案 0 :(得分:0)
它取决于版本2.4和2.6之间的内部API更改。最佳解决方案用于TokuMX的客户端,因为它与MongoDB 2.4 Engine版本兼容。
在这种情况下,结果不是对象。这是一个数组。使用下面的代码片段在代码中调试它:
// show whole data
printjson(result);
// show keys only
printjson(Object.keys(result));