2014-02-17 4 views
0

시간 프레임과 주소 번호를 기반으로 쿼리하는 MongoDB 컬렉션이 있습니다. 쿼리가 성공하면 서버는 각 쿼리 항목에 저장된 여러 속성과 함께 CSV 파일을 반환합니다. 이 부분은 잘 작동합니다.MongoDB 시간 변환

문제는 내 CSV 파일의 속성 중 하나가 타임 스탬프입니다. 로컬 날짜 시간 (즉, "Time": "2014-02-09T06 : 00 : 02.000Z")을 반환하고 싶습니다 ... 그러나 CSV 파일은 밀리 초 단위로 날짜 객체를 반환합니다 (즉, "Time ": 1392040717774). 쿼리 항목을 CSV 파일에 기록하기 전에 로컬 날짜 문자열로 변환하는 쉬운 방법이 있습니까? 여기에 내 코드 스 니펫이 있습니다 :

답변

0

그래서이 문제를 해결할 방법을 찾아 냈습니다 (다른 것들이있을 수 있음). 기본적으로 .getTime() 데이터를 새 Date() 객체로 변환하기 위해 파이프 시스템에 변환을 추가해야했습니다. 다음은 문제를 해결하는 코드 스 니펫입니다.

var Transform = require('stream').Transform; 

var parser = new Transform({objectMode: true}); 
parser._transform = function(data, encoding, done) { 
    if(data.time) data.time = new Date(data.time); 
    this.push(data); 
    done(); 
}; 

var jsonToStrings = JSONStream.stringify(false); 

dbstream.pipe(parser).pipe(jsonToStrings).pipe(wstream);