2013-09-07 3 views
-1

mongoexport 도구를 사용하여 컬렉션에서 데이터를 내보내고 있습니다. 내 컬렉션에는 conn_time 필드에 ISODate 타임 스탬프가 있습니다. 지난 15 분 동안로드 된 데이터를 내보내려고합니다.MongoDb 데이터베이스의 JavaScript에서 isodate 타임 스탬프를 얻는 방법

나는 아래처럼 사용하고 있지만 오류 반환 : "Too many positions."

-q '{conn_time:{$gt:"Fri' Sep 06 2013 22:23:20 GMT+0000 '(GMT)",$lt:"Fri' Sep 06 2013 22:38:20 GMT+0000 '(GMT)"}}' 

전체 명령

mongoexport --csv --out /tmp/aud_createcoll_log.csv 
--host abc.corp.ner:1089 
--db test --collection aud_create_log 
-q '{conn_time:{$gt:"Fri' Sep 06 2013 22:23:20 GMT+0000 '(GMT)",$lt:"Fri' Sep 06 2013 22:38:20 GMT+0000 '(GMT)"}}' 
--fields app_name,file_name,conn_time,conn_host,conn_command -u user -p 'aaaaaa' -v 

답변

0

내가하지 않는 한 나는 (정확히 명령 줄을 테스트 할 수는 없지만 귀하의 DB를 가지고), 난 거기에 몇 가지 문제가 추측하고 싶습니다 :

  1. 귀하의 검색어가 일치하지 않는 따옴표를 사용하고 있습니다. 작은 따옴표 (')를 열어 놓은 다음 어떤 식 으로든 이스케이프하지 않고 쿼리에서 작은 따옴표를 여러 번 사용하십시오. 따라서 명령 줄 구문 분석기는 매우 혼란스러워지고 나머지 명령 줄은 추가 인수입니다 (사실 너무 많음). 작은 따옴표를 이스케이프하려면 \'을 사용할 수 있지만 다음 제안에서 볼 수 있듯이 여분의 따옴표는 필요하지 않습니다.
  2. 검색어에 ISODate을 사용하는 것이 좋겠지 만 올바른 형식인지 확인해야합니다. 예 : ISODate("2013-09-07T20:03:38.739Z"). 첫 번째 요점에서 언급했듯이이 방법을 사용하면 전체 날짜를 표현할 때 큰 따옴표 이상을 사용할 필요가 없습니다.
(I, 나는 그것을 테스트하지 않은 말했듯이) 명령은 다음과 같을 것이다

:

mongoexport --csv --out /tmp/aud_createcoll_log.csv 
--host abc.corp.ner:1089 
--db test --collection aud_create_log 
-q '{conn_time:{$gt:ISODate("2013-09-06T22:23:20"),$lt:ISODate("2013-09-06T22:38:20")}}' 
--fields app_name,file_name,conn_time,conn_host,conn_command -u user -p 'aaaaaa' -v 
+0

내가 2013 22시 23분 금 '9월 6일 내가 형식으로 날짜를 가지고 자바 스크립트를 사용하는 경우 : 20 GMT + 0000 '(GMT). 그러나 몽고 컬렉션을 사용하여 데이터를 쿼리하는 iso 날짜를 원합니다 – user2609099

+0

@ user2609099 - 그게 질문입니까? 내 대답이 너를 위해 일 했니? – WiredPrairie

관련 문제