0

欢迎

我正在使用 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 的机器上运行它之后,我有一个错误:

11 月 23 日星期三 14:13:06.443 TypeError: Object [object Object] has no method 'hasNext' at (...)/temp/script.js failed to load: (...)/temp/script.js

有人可以帮我弄这个吗 ?或者也许有人有工作示例如何使用 TokuMX 在机器上运行这种聚合?

结果文件应如下所示:

campaign, count
xyz, 5
yxz, 6
4

1 回答 1

0

它取决于版本 2.4 和 2.6 之间的内部 API 更改。TokuMX 的客户端使用了最佳解决方案,因为它的版本与 MongoDB 2.4 引擎兼容。

在这种情况下,结果不是对象。它是一个数组。使用下面的代码片段在代码中调试它:

// show whole data
printjson(result);
// show keys only
printjson(Object.keys(result));
于 2016-11-24T09:33:23.143 回答