2012-04-17 2 views
0

특정 날짜의 MongoDB에서 추출한 것을 찾고 있습니다. Talend에서 쿼리를 보내는 구성 요소를 사용하고 있으므로 여러 줄의 코드를 사용할 수 없다는 의미에서 제한적입니다.MongoDB에 대한 날짜 제한 쿼리

찾기 방법에서 직접 날짜 제한을 수행 할 수 있습니까?

db.example.find({ ts: { $gt: lowdate} }); 

여기서 lowdate가 무엇인지 알아낼 수 있기를 바랍니다.

감사합니다.

추신. mongodb의 날짜 형식은 중요한 경우 "2011 년 12 월 16 일 7:37:06 PM"입니다.

--- 업데이트 --- 내 MongoDB의에서 :

, "타이": "인증", "TS": "2011년 12월 16일 오후 3시 28분 1초"

이는 타임 스탬프 (ts)의 형식이 문자열임을 시사합니다. 옳은?

+0

그래, 문자열 것으로 보인다. 그걸 효율적으로 쿼리하는 능력을 제한 :) –

답변

0

날짜가 해당 형식의 문자열로 저장되어 있으면 쿼리를 만들 수 없습니다. 이 문제를 해결하려면 모든 문서를 스캔하고이 날짜를 문자열로 타임 스탬프로 변환하는 스크립트를 원하는 언어로 작성하는 것이 좋습니다. "ts"필드를 덮어 쓰거나 새로운 필드를 만들 수 있습니다. "ts_int"라고하는 것.

예를 들어, PHP에서 당신이 할 것 :

<?php 
$m = new Mongo(); 
$c = $m->mydbname->example; 

foreach ($c->find() as $item) 
{ 
    $item['ts_int'] = strtotime($item['ts']); 
    $c->update($item); 
} 
?> 
+0

고마워! 이것은 여전히 ​​dev에 있기 때문에 날짜 대신 유닉스 타임 스탬프로 저장할 수 있는지 알 수 있습니다. – Geuder