내 첫 번째 StackOverflow 게시물! Pentaho Report Designer epoch 타임 스탬프 별 MongoDB 그룹화
은 내가 MongoDB를 수집라는 user_sessions이 - 하나의 문서는 다음과 같습니다 : 나는 펜타의 보고서 디자이너 (5.1)를 사용하여 보고서를 만들려고 해요{
"_id" : ObjectId("53e352bbed3e4af00d8b459a"),
"active_date" : 1407406779727,
"auth_token" : "WObDF9KO6n1V34lgjlFIoXoiEmOH9CM8",
"device_token" : "3474ac2d5aa9c7dc933bd4548c2dd6ea3d8a9592dad1c1a807c06ac2c8459205",
"device_type" : "1",
"end_time" : "",
"sessionid" : "",
"start_time" : 1407406779727,
"userid" : "53e352bbed3e4af00d8b4599"
}
. 나는이 쿼리 출력에 사용자 세션의 총 수를 처리했다 : 대단한
[
{ $group: { _id: null, count: { $sum: 1 } } }
]
합니다.
그러나 날짜별로 세션 수를 표시하고 싶습니다.
내가 그 콜렉션에 대해이 PHP 스크립트 (PHP는 몽고 드라이버를 사용하여) 실행하면 :
UserID: 53dfa1a7ed3e4aef0d8b456b, StartTime: 2014-08-05
UserID: 53e075deed3e4af00d8b4570, StartTime: 2014-08-05
UserID: 53e079c9ed3e4af00d8b4573, StartTime: 2014-08-05
UserID: 53e07f8ded3e4aef0d8b4580, StartTime: 2014-08-05
UserID: 53e081f9ed3e4aef0d8b4583, StartTime: 2014-08-05
UserID: 53e352bbed3e4af00d8b4599, StartTime: 2014-08-07
UserID: 53e9fb9eed3e4af00d8b45a3, StartTime: 2014-08-12
UserID: 53f215f6ed3e4aef0d8b45a3, StartTime: 2014-08-19
UserID: 53f3eeb7ed3e4aef0d8b45a7, StartTime: 2014-08-20
UserID: 54083e94ed3e4af00d8b45b0, StartTime: 2014-09-04
UserID: 5412cd29ed3e4aef0d8b45bc, StartTime: 2014-09-12
UserID: 54175625ed3e4aef0d8b45c0, StartTime: 2014-09-16
UserID: 54351b7ced3e4af00d8b45ff, StartTime: 2014-10-08
UserID: 5444f1dced3e4a56718b45bb, StartTime: 2014-10-20
UserID: 54475d48ed3e4af00d8b4628, StartTime: 2014-10-22
UserID: 5449cc77ed3e4a79638b4592, StartTime: 2014-10-24
UserID: 53e3c875ed3e4af00d8b459d, StartTime: 2014-10-24
UserID: 544f6bb7ed3e4af00d8b464a, StartTime: 2014-10-28
UserID: 544de95aed3e4a56718b45f2, StartTime: 2014-10-31
UserID: 545b125c4a4ddd30048b4567, StartTime: 2014-11-06
환상적인 :
$connection = new Mongo("mongodb://$dbhost");
$c_us = $db->user_session;
$cursor = $c_us->find();
foreach ($cursor as $document) {
echo "<br/>UserID: " . $document['userid'] . ", StartTime: ";
$epoch = $document['start_time'];
echo date('Y-m-d',$epoch/1000);
}
내가이 출력을 얻을를!
그러나 날짜 수 (및 월/날짜)로 세션 수를 계산하려면 어떻게해야합니까?
2014-08-05 5
2014-08-07 1
.
.
.
2014-10-24 2
등
과 user_session 스키마 감안할 때
Month/Year Count
Aug 2014 9
Sep 2014 3
Oct 2014 7
Nov 2014 1
, 내가 start_time을에 신기원 시간을 변환 할 수 있습니다 방법 :
그래서 위의를 위해,이 같은 보고서를 필요 월/년 및 계산?
내 키워드 연구는 내가 할 수있는 것을 제공하지 못했습니다.
나는 손실에 처해있다. 검색 용어로 무엇을 입력해야합니까? 누군가 포인터를 줄 수 있습니까?
정말 감사하겠습니다.
감사
브래드
죄송합니다. pentaho 또는 PHP에 익숙하지 않지만 MongoDB에 사용할 수있는 훌륭한 날짜 수집기가 있습니다. http://docs.mongodb.org/manual/reference/operator/aggregation/# 날짜 연산자 – ranman
@ranman! 감사! 나는 $ month 링크를 따라 갔고 [link] http://docs.mongodb.org/manual/reference/operator/aggregation/month/#exp._S_month [/ link]로 끝나고 예제를 변경했지만이 오류가 발생했습니다. : 오류 : "스택 추적 인쇄"@ () @ src/mongo/shell/utils.js : 37 (객체 배열) @ src/mongo/shell/collection.js : 866 15 캐치되지 않는 예외 : (쉘) @ 집계 실패 : { \t "에 errmsg": "예외 : 날짜에 BSON 유형 NumberDouble에서 변환 할 수 없습니다", \t "코드"16006, \t "확인" : 0 } ' – bradzo