2014-12-07 4 views
0

내 유성 앱에 아래에 표시된 날짜 범위가있는 모든 문서를 찾으려고하지만 어떤 이유로 항상 빈 레코드를 반환하고 있습니다. 누군가 내가 무엇을하고 있는지 말해 줄 수 있습니까? 잘못되었거나 누락 되었습니까? 감사합니다날짜 범위 내 날짜 찾기

샘플 문서 :

_id: "tMSfNq9JR85XDaQe5"customerid: "QDGvBQhS6vYgZtnRr"date: Sun Dec 07 2014 19:50:21 GMT+0800 (HKT)description: "Test" 

다음과 같이 크롬 콘솔에서 쿼리를 사용하여 시도 : 자신의 무한한 지혜에

Custlog.find({date: {$gt: new Date(2014, 12, 1) , $lt: new Date(2014, 12, 10) }}).fetch() 

Custlog.find({date: {$gt: new Date(01/12/2014) , $lt: new Date(10/12/2014) }}).fetch() 
+0

mongod 로그 파일을 조사하여 실제로 mongod에 전송 된 쿼리를 확인함으로써 디버깅 범위를 좁힐 수 있습니까? 그런 다음이 쿼리를 mongod에 대해 mongo 쉘에서 직접 작업하게하십시오. 이것들은 좋은 첫 단계입니다. – alernerdev

+0

@alernerdev Meteor를 사용하고 있으므로 monogd에 직접 액세스 할 수 없습니다. Meteor를 사용하는 동안 mongod에 액세스 할 수 있다면 검색을 시도했지만 정보를 찾을 수 없습니다. – MChan

+0

내 생각 엔 문서가 게시되지 않을 수도 있습니다. 'Custlog.find(). fetch()'로 무엇이든 돌아 왔습니까? mongo 쉘에 액세스하려면 프로젝트가 실행되는 동안 프로젝트와 동일한 디렉토리에있는 명령 행에서'meteor mongo'를 실행하십시오. –

답변

3

는 자바 스크립트 날짜 개체의 구현은 색인 월 필드 제로를했다. 따라서 1 월 1 일은 new Date(2014, 0, 1)이고 12 월 1 일은 new Date(2014, 11, 1)입니다. Date(2014, 12, 1)은 실제로 2015 년 1 월 1 일입니다.

마찬가지로 new Date(01/12/2014)은 1을 12로 나눈 값과 2014로 나눈 값을 0으로 지정한 날짜 개체로 전송하므로 숫자가 0 일 때 귀하의 시간대 (GMT + 08)에서 1970 년 1 월 1 일인 Unix Epoc입니다.

+0

그냥 명시 적으로 : Custlog.find ({date : {$ gt : new Date (2014, 11, 1), $ lt : 새 날짜 (2014, 11, 10)}}). fetch 12 월 1 일 이후 12 월 10 일보다 적은 날짜의 문서. – Doktorn