2016-11-23 12 views
0

에 오신 것을 환영합니다TokuMX 개체 [개체 개체]있는 방법이 없습니다 'hasNext'

I가 이것을 실행 한 후, 나는 몽고 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가 설치된 컴퓨터에서 ony 오류가 발생했습니다.

Wed Nov 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 

답변

0

은 버전 2.4과 2.6 사이의 내부 API의 변화에 ​​따라 달라집니다. MongoDB 2.4 엔진과 호환되는 버전이기 때문에 TokuMX의 가장 좋은 솔루션이 클라이언트에 사용됩니다.

이 경우 결과는 개체가 아닙니다. 그것은 배열입니다. 아래 스 니펫을 사용하여 코드에서 디버그하십시오.

// show whole data 
printjson(result); 
// show keys only 
printjson(Object.keys(result));